WPF 中 TextBlock 限制显示长度时,鼠标移入会自动出现 ToolTip

第一种方案:(通过附加属性来实现) 附加属性的代码 TextBlockUtils 类: xaml 代码: 在 xaml 首行添加 TextBlockUtils 类的命名空间:xmlns:util=”clr-namespace:DriverEasyWPF.Utils” 将 Textbloc 的 TextTrimming 属性设置为 true; 使用附加属性 util:TextBlockUtils.AutoTooltip = “True” 第二种方案:(通过转换器来实现) 转换器 TrimmedTextBlockVisibilityConverter 类: 在 App.xaml 中声明转换器: 在 xaml 中使用: 将 Textblock 的 TextTrimming 属性设置为 true; 注意: 使用附加属性的方式,如果在 ListBox 的 items 中 TextBlock 使用,如果 items 数量过大,界面可能会出现 1 秒左右的卡顿,才会显示最终效果。 使用转换器的方式就没有这个问题。 参考: Automatically Showing ToolTips on […]

WPF 的 KeyDown 事件不生效

出发键盘按钮事件 控件当前获得焦点,通过 xaml 的 FocusManager 或者后台使用 Focus() 方法来设置 将控件的 Focusable 设为 True,如下: 代码示例如下: 界面: <Grid FocusManager.FocusedElement=”{Binding ElementName=tb}”> <TextBlock Focusable=”True” KeyDown=”TextBlock_KeyDown” x:Name=”tb” Text=”abc” FontSize=”100″/> </Grid> 后台: private void TextBlock_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { tb.Text = “ok”; } }

WPF Grid 根据内容自适应

WPF Grid 根据内容自适应, 为了能让 Grid 的行和列根据内容自动适应可以通过设置来实现: Grid 表格布局,默认是平均分配,为了便于观察,通过设置 ShowGridLine 显示分界线如下: 行 Row 可以设置行高 Height;列 Column 可以设置列宽 Width; Grid 中 RowDefinition 的 Height 和 ColumnDefinition 的 Width 可以通过以下几种方式来设置: 使用具体数值,固定不变;设置第一行行高为 40,效果如下,第一行的高度就固定为 40 不变了。除非界面的内容固定不变,一般不建议直接使用具体数值。  2. 按比例划分,使用 * 星号, 分配的规则是,把所有的数字相加作为分母,每一个单独的数字作为分子,算出比例,如: 2*,5*,8*; 分母为(2+5+8=15),分子则是(2/15、5/15、8/15): 此时只是比例固定不变,如果界面尺寸变化,对应的内容部分就会变大。   3. 设置为 Auto,根据内容自适应; 只有行设置为 Auto,设置为 Auto 的行高为当前行内容最高的高度,剩下没有设置 Auto 的平均分配剩余的高度,如下: 默认的平均分配 第一行设置 Height = “Auto” 后,如下: […]

WPF使用Path来画圆

WPF使用Path来画圆, 在 WPF 中可以使用 Path (路径) 来画圆,而 Path 支持两种写法:xaml 代码格式、标记格式,这里介绍的是标记格式: 例子: 效果: 结合代码解释:1. Stroke 表示圆边框的颜色,这里是黑色 black 2. StrokeThickness 表示边框粗细 3. Fill 表示圆内部的颜色,这里为蓝色 blue 4. Path 的 Data 属性,就是描述当前路径是如何描画的 Data=”M 300,300 A 100,100 0 1 1 300,299 Z”            M 300,300  : 300,300 表示起始坐标,字母 M 为 Move, 意思是将画笔移到 300,300 处;     […]

WPF 使用日期选择器控件 DatePicker

WPF 使用日期选择器控件 DatePicker, 为了能更方面的选择日期,在 .net 4.0 之后,WPF 中提供了相应的控件,显示效果如下:  对应的代码如下: 外层使用 StackPancel 进行布局,水平显示;使用一个 TextBlock 显示 “Choose Date:”;使用一个 TextBox 来显示选择 DatePicker 中的日期;使用一个 DatePicker 核心代码是将 TextBox 的 Text 属性绑定 DatePicker 的 SelectedDate 属性: 点击 DatePicker 控件,显示如下,可以根据需求随意选择日期 默认的显示格式如下:       注意,DatePicker 只能选择日期,而不包含时间部分,如果需要格式化日期的显示,可以通过设置 TextBox 的 StringFormat 属性,如: 而且 DatePicker 也有 SelectedDateChanged 事件,可以在后台代码中使用 SelectedDate 属性, 示例代码如下:注意:SelectDate 属性为 DateTime? 类型(可为空的DateTime类型)既可以获取当前选择的时间,也可以为它赋值 指定日期区间,可以通过 […]