在写代码过程中发现直接一下方法中时无法直接进行数据绑定的:
<TabControl x:Name="ScanPaperSet" Foreground="Black" BorderBrush="LightBlue" BorderThickness="0">
<TabItem x:Name="item1" Header = “{Binding ...}”>
</TabItem>
</TabControl>
换种方式就可以了:
<TabControl x:Name="ScanPaperSet" Foreground="Black" BorderBrush="LightBlue" BorderThickness="0">
<TabItem x:Name="item1">
<TabItem.Header>
<TextBlock x:Name="itemHeader1" Text = “{Binding ...}”
</TabItem.Header>
</TabItem>
</TabControl>
可能是TabItem没有继承DependencyObject的原因吧。现在问题解决了!!!
在写代码过程中发现直接一下方法中时无法直接进行数据绑定的: <TabControl x:Name="ScanPaperSet" Foreground="Black" BorderBrush="LightBlue" BorderThickness="0"> <TabItem x:Name="item1" Header = “{Binding ...}”> </TabItem>
代码里public static ObservableCollection<T
abI
tem
> ou = new ObservableCollection<T
abI
tem
>();
public void addB2(string
Header
, FrameworkElement fe){T
abI
tem
t = new T
abI
tem
();t.
Header
=
Header
;...
WPF
TabControl
in Binding’s world
首先,
TabControl
是间接继承自I
tem
Control的控件,因此可以像I
tem
Control那样自如的使用。
自此,我们知道了I
tem
Control的派生控件有:
I
tem
Control–>Selector–>ListBox
I
tem
Control–>Selector–>ListBox–>ListView
I
tem
Control–>Selector–>ComboBox
I
tem
Control
每秒指令数=时钟频率/每个总线包含时钟周期数/指令平均占用总线周期数
平均总线周期数=所有指令类别相加(平均总线周期数*使用频度)
控制程序所包含的总线周期数=(指令数*总线周期数/指令)
指令数=指令条数*使用频度/总指令使用频度
每秒总线周期数=主频/时钟周期
FSB带宽=FSB频率*FSB位宽/8
计算机执行程序所需时间
P=I*CPI*T
执行程序所需时间=编译后产生的机器指令数*指令所需平均周期数*每个机器周期时间
定长编码:码长>=log2
变长编码:将每个码长*频度,再累加其和
平均码长=每个码长*频度
流水线计算
流水线周期值等于最慢的那个指令周期
流水线执行时间=首条指令的执行时间+(指令总数-1)*流水线周期值
流水线吞吐率=任务数/完成时间
流水线加速比=不采用流水线的执行时间/采用流水线的执行时间
存储器计算
存储器带宽:每秒能访问的位数单位ns=10-9秒
存储器带宽=1秒/存储器周期(ns)*每周期可访问的字节数
(随机存取)传输率=1/存储器周期
(非随机存取)读写N位所需的平均时间=平均存取时间+N位/
数据
传输率
内存片数:(W/w)*(B/b)W、B表示要组成的存储器的字数和位数;
w、b表示内存芯片的字数和位数
存储器地址编码=(第二地址–第一地址)+1
{例:[(CFFFFH-90000H)+1]/[(16K*1024)*8bit]}
内存位数:log2(要编址的字或字节数)
Cache计算
平均访存时间:Cache命
中
率*Cache访问周期时间+Cache失效率*主存访问周期时间
[例:(2%*100ns+98%*10ns)+1/5*(5%*100ns+95%*10ns)=14.7ns]
映射时,主存和Cache会分成容量相同的组
cache组相联映射主存地址计算
主存地址=(主存容量块数*字块大小)log2(主存块和cache块容量一致)
[例:128*4096=219(27*212)]
主存区号=(主存容量块数/cache容量块数)log2
Cache访存命
中
率=cache存取次数/(cache存取次数+主存存取次数)
磁带相关性能公式
数据
传输速率(B/s)=磁带记录密度(B/mm)*带速(mm/s)
数据
块长充=B1(记录
数据
所需长度)+B2(块间间隔)
B1=(字节数/记录)*块因子/记录密度
读N条记录所需时间:T=S(启停时间)+R+D
R(有效时间)=(N*字节数/记录)/传输速度
D(间隔时间)=块间隔总长/带速=[(N/块化因子)*(块间间隔)]/带速
每块容量=记录长度*块化系数
每块长度=容量/(记录密度)
存储记录的块数=磁带总带长/(每块长度+每块容量)
磁带容量=每块容量*块数
磁盘常见技术指标计算公式
双面盘片要*2因为最外面是保护面又-2 N*2-2
非格式化容量=位密度*3.14159*最内圈址径*总磁道数
[例:(250*3.14*10*10*6400)/8/1024/1024=59.89MB]
总磁道数=记录面数*磁道密度*(外直径-内直径)/2
[例:8面*8*(30-10)/2*10=6400]
每面磁道数=((外径-内径)/2)×道密度
每道位密度不同,容易相同
每道信息量=内径周长×位密度
[例:10cm×10×3.14159×250位/mm=78537.5位/道]
格式化容量=每道扇区数*扇区容量*总磁道数
[例:(16*512*6400)/1024/1024=50MB]
格式化容量=非格式化容量×0.8
平均传输速率=最内圈直径*位密度*盘片转速
[例:[2*3.14*(100/2)]*250*7200/60/8=1178Kb/s]
数据
传输率=(外圈速率+内圈速率)/2
外圈速率=外径周长×位密度×转速
[例:(30cm×10×3.14159×250位/mm×120转/秒)/8/1024=3451.4539 KB/s]
内圈速率=内径周长×位密度×转速
[例:(10cm×10×3.14159×250位/mm×120转/秒)/8/1024=1150.4846 KB/s]
数据
传输率(3451.4539+1150.4846)/2=2300.9693 KB/s
存取时间=寻道时间+等待时间
处理时间=等待时间+记录处理时间
(记录处理最少等待时间=0,最长等待时间=磁盘旋转周期N ms/周*记录道数)
移动道数(或扇区)=目标磁道(或扇区)-当前磁道(或扇区)
寻道时间=移动道数*每经过一磁道所需时间
等待时间=移动扇区数*每转过一扇区所需时间
读取时间=目标的块数*读一块
数据
的时间
数据
读出时间=等待时间+寻道时间+读取时间
减少等待时间调整读取顺序能加快
数据
读取时间
平均等待时间=磁盘旋转一周所用时间的一半
(自由选择顺逆时钟时,最长等待时间为半圈,最短为无须旋转)
平均等待时间=(最长时间+最短时间)/2
平均寻道时间=(最大磁道的平均最长寻道时间+最短时间)/2
最大磁道的平均最长寻道时间=(最长外径+圆心)/2
虚存地址转换
(((基号)+段号)+
页
号)*2n+
页
内偏移
网络流量与差错控制技术 最高链路
利用
率
a:帧计数长度
a可以是传播延迟/发一帧时间
数据
速率*线路长度/传播速度/帧长
数据
速率*传播延迟/帧长
停等协议最高链路
利用
率E=1/(2a+1)
W:窗口大小
滑动窗口协议E=W/(2a+1)
P:帧出错概率
停等ARQ协议E=(1-P)/(2a+1)
选择重发ARQ协议
若W>2a+1则E=1-P
若W<=2a+1则E=W(1-P)/(2a+1)
后退N帧ARQ协议
若W>2a+1则E=(1-P)/(1-P+NP)
若W<=2a+1则E=W(1-P)/(2a+1)(1-P+NP)
CSMA/CD常用计算公式
网络传播延迟=最大段长/信号传播速度
冲突窗口=网络传播延迟的两倍.(宽带为四倍)
最小帧长=2*(网络
数据
速率*最大段长/信号传播速度)
例:Lmin=2*(1Gb/s*1/200 000)=10 000bit=1250字节
吞吐率T(单位时间内实际传送的位数)
T=帧长/(网络段长/传播速度+帧长/网络
数据
速率)
网络
利用
率E
E=吞吐率/网络
数据
速率
以太网冲突时槽
T=2(电波传播时间+4个
中
继器的延时)+发送端的工作站延时+接收站延时
即T=2*(S/0.7C)+2*4Tr+2Tphy
T=2S/0.7C+2Tphy+8Tr
S=网络跨距
0.7C=电波在铜缆的速度是光波在真空
中
的0.7倍光速
Tphy=发送站物理层时延
Tr=
中
继器延时
快速以太网跨距
S=0.35C(Lmin/R–2 Tphy-8Tr)
传输时延=
数据
传输率*(网段长度/传播速度)
例:4Mb/s*(600米/200米/us)us=12比特时延(1us=10-6秒)
存在环上的位数=传播延迟(5us/km)*发送介质长度*
数据
速率+
中
继器延迟
包的发送=天数*24小时(86400秒)*每秒包的速率
IP地址及子网掩码计算
可分配的网络数=2网络号位数
网络
中
最大的主机数=2主机号位数-2例:10位主机号=210-2=1022
IP和网络号位数取子网掩码
例:IP:176.68.160.12网络位数:22
子网:ip->二进制->网络号全1,主机为0->子网前22位1,后为0=255.255.252.0
Vlsm复杂子网计算
Ip/子网编码
1.取网络号.求同一网络上的ip
例:112.10.200.0/21前21位->二进制->取前21位相同者(ip)/(子网)
2.路由汇聚
例:122.21.136.0/24和122.21.143.0/24判断前24位->二进制->取前24位相同者10001000 10001111
系统可靠性:
串联:R=R1*R2*....RX
并联:R=1-(1-R1)*(1-R2)*...(1-RX)
pcm编码
取样:最高频率*2
量化:位数=log2^级数
编码量化后转成二进制
海明码信息位:
k=冗余码
n=信息位
2^k-1>=n+k
如果调用
方法
失败是由无效参数以外的其他原因导致的,则使用该异常。通常, 当对象的状态不支持
方法
调用时, 将引发此异常。例如, 以下
方法
或原因会引发异常nvalidOperationException:
IEnumerator.MoveN.
今天碰到一个需求,使用ListBox显示多文字。因为每个选项文字较长,ListBoxI
tem
的宽度有限,这时候为了体现界面友好,增加ToolTip是一个好的选择:代码如下:
MainWindow.xmal:
<Window x:Class="_20200116_MVVM.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http...
/// <param name="bitmap">要转换的图像</param>
/// <returns></returns>
private byte[] BitMapToByte(Sys
tem
.Drawing.Bitmap bitmap)
// 1.先将BitMap
WPF
TabControl
是一种常用的控件,用于在应用程序
中
创建多个选项卡。每个选项卡由T
abI
tem
表示,可以通过T
abI
tem
的
Header
属性设置选项卡的标题。
要给T
abI
tem
动态
添加事件,可以使用以下步骤:
1. 在XAML
中
创建
TabControl
和一些初始化的T
abI
tem
。
2. 在代码
中
订阅
TabControl
的SelectionChanged事件。
3. 在该事件处理程序
中
,获取当前选
中
的T
abI
tem
。
4. 使用AddHandler
方法
为选
中
的T
abI
tem
添加所需的事件处理程序。
以下是实现的示例代码:
XAML部分:
```XAML
<
TabControl
x:Name="my
TabControl
" SelectionChanged="
TabControl
_SelectionChanged">
<T
abI
tem
Header
="选项卡1" />
<T
abI
tem
Header
="选项卡2" />
</
TabControl
>
C#部分:
```C#
private void
TabControl
_SelectionChanged(object sender, SelectionChangedEventArgs e)
// 获取当前选
中
的T
abI
tem
T
abI
tem
selectedT
abI
tem
= (T
abI
tem
)my
TabControl
.SelectedI
tem
;
// 为选
中
的T
abI
tem
添加事件处理程序
selectedT
abI
tem
.AddHandler(Button.ClickEvent, new RoutedEventHandler(T
abI
tem
_ButtonClick));
private void T
abI
tem
_ButtonClick(object sender, RoutedEventArgs e)
// 处理选
中
的T
abI
tem
的按钮点击事件
MessageBox.Show("点击了选项卡的按钮!");
上述代码
中
,我们首先在XAML
中
创建了一个
TabControl
和两个T
abI
tem
,并为
TabControl
的SelectionChanged事件指定事件处理程序。
在事件处理程序
中
,我们首先获取当前选
中
的T
abI
tem
,然后使用AddHandler
方法
为其按钮的Click事件添加了一个事件处理程序。
在T
abI
tem
_ButtonClick
方法
中
,我们可以处理选
中
的T
abI
tem
的按钮点击事件,并在此处显示了一个消息框,以示例展示处理逻辑。
通过上述步骤可实现给
WPF
TabControl
的T
abI
tem
动态
添加事件的功能。
楚楚3107:
WPF 自定义绘制显示Grid网格线
被遺忘的榕樹: