原文:WPF 设置控件阴影后,引发的Y轴位置变化问题 背景 最近遇到一个动画执行时,文本位置变化的问题.如下图: 如果你仔细看的话,当星星变小时,文本往下降了几个像素. 貌似有点莫名其妙,因为控件之间并不在同一个Panel布局控件中,不存在高度限制变化引发此类问题.所以有了如下测试 测试场景 1. 首先新建了一个空项目,前面是一个带阴影的文本,后面用一张普通图片循环变更它的高度.尝试了下,还是会移动Y轴的像素 测试不通过 2. 后面使用用普通的布局控件Grid代替.依然如此 测试不通过 所以此问…
控件获取焦点除了用鼠标外,可以通过键盘来获取,比如Tab键或者方向键等,需要设置控件获取键盘焦点时的样式,可以通过设置FrameworkElemnt.FocusVisualStyle属性, 因为几乎所有常用的控件都继承了FrameworkElement,所以绝大部分控件都拥有该属性 // Summary: // Gets or sets a property that enables customization of appearance, effects, // or other style…
  简单用法如下: 在父类容器中通过附加属性FocusManager.FocusedElement来绑定需要强制获得焦点的控件,用法如下: <Grid FocusManager.FocusedElement="{Binding ElementName=btn}">        <Button x:Name="btn" Content="1234"/> </Grid> 需要注意的是:当控件使用Style或者Te…
1.这个比较有效 this.Dispatcher.BeginInvoke(DispatcherPriority.Background, (Action)(() => { Keyboard.Focus(tbReceiveMoney); })); 2.一般方式 tbReceiveMoney.Focus(); 不知道为什么用下面这方法不行 tbReceiveMoney.Invoke(() => { tbReceiveMoney.Focus(); });…
用WPF做贪吃蛇小游戏时,发现了一个问题: 贪吃蛇的移动,我是通过不断刷新Rectangle来实现(贪吃蛇的身体由一组Rectangle组成),因此需要不断调整Rectangle的坐标,但是WPF中没有Location的相关设置 在网上查到可以用Thickness实现 Rectangle Rec = new Rectangle(); Rec.Margin = , , , ); 但总是调不准 其实可以通过Canvas实现 Canvas介绍 用代码实现Canvas: // Create the ap…
原文 WPF:DataTemplateSelector设置控件不同的样式 最近想实现这么个东西,一个ListBox, 里面的ListBoxItem可能是文本框.下拉框.日期选择控件等等. 很自然的想到了DataTemplateSelector,并且事先定义好各类DataTemplate以显示不同的控件. 先定义好各类资源     <Window.Resources>         <DataTemplate x:Key="textBox">          …
原文:WPF 后台C#设置控件背景图片 以前的程序中有做过,当时只是记得uri很长一大段就没怎么记.今天有人问了也就写下来.   这是一个Button,设置了Background后的效果. 前台的设置比较方便 XAML: <Button Height="174" Name="button1" Width="349"> <Button.Background> <ImageBrush ImageSource="…
原文:WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画 利用WPF的ListView控件实现类似于Winform中DataGrid行背景色交替变换的效果,同时增加鼠标的悬停效果. 1.本文实现的效果如下: 2.所有的效果,我通过C#代码实现.代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Wi…
原文:WPF 程序如何跨窗口/跨进程设置控件焦点 WPF 程序提供了 Focus 方法和 TraversalRequest 来在 WPF 焦点范围内转移焦点.但如果 WPF 窗口中嵌入了其他框架的 UI(比如另一个子窗口),那么就需要使用其他的方法来设置焦点了. 一个粗略的设置方法是,使用 Win32 API: SetFocus(hwnd); 1 传入的是要设置焦点的窗口的句柄. 参考资料 winapi - Win32: C++: How do I re-focus on Parent Wind…
WPF常用控件应用demo 一.Demo 1.Demo截图如下: 2.demo实现过程 总体布局:因放大缩小窗体,控件很根据空间是否足够改变布局,故用WrapPanel布局. <ScrollViewer BorderBrush="BlueViolet"> <WrapPanel Margin="40,0,0,40"> </WrapPanel> </ScrollViewer> 窗体资源:同一种控件多处使用会有重复代码,为减…