原文:WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 问题描述 今天发现如果我想在一个TextBlock弄一个右键菜单,并且使用Command绑定,结果发现默认菜单式不可用的. 问题原因 这个问题不知道算不算BUG,反正如果是在一个不可获得的焦点的东西上面使用ContextMenu,CanExecute的事件路由就会停止在ContextMenu,就没办法到达窗体上.一个解决的方案是吧CommandTarget设置到窗体上去. 事例代码 <Window…
原文:WPF中使用文件浏览对话框的几种方式 WPF本身并没有为我们提供文件浏览的控件, 也不能直接使用Forms中的控件,而文件浏览对话框又是我们最常用的控件之一. 下面是我实现的方式 方式1: 使用win32控件OpenFileDialog ? 1 2 3 4 5 6 7 Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.DefaultExt = ".xml"; ofd.Fil…
场景:ListBox中有个ContextMenu,希望点击其中一个菜单项的时候把ListBox当做CommandParameter传递给Command,但是发现无论是通过ElementName还是RelativeSource中的FindAncestor传值,命令接收到的参数一直都是null. 分析:通过网上查找,找到这么一句话“The problem is that the ContextMenu is at the root of its own visual tree, so any Rel…
首先新建一个WPF工程,在主界面添加一个按钮,并给按钮添加点击事件button1_Click,然后新建一个用于测试弹出位置的窗口TestWindow.1.在屏幕中间显示,设置window.WindowStartupLocation = WindowStartupLocation.CenterScreen; private void button1_Click(object sender, RoutedEventArgs e) { TestWindow window = new TestWindo…
一.StackPanel StackPanel是以堆叠的方式显示其中的控件 1.可以使用Orientation属性更改堆叠的顺序 Orientation="Vertical" 默认,由上到下显示各控件.控件在未定义的前提下,宽度为StackPanel的宽度,高度自动适应控件中内容的高度 1: <StackPanel Orientation="Vertical"> 2: <Button>Button A</Button> 3: &l…
在wpf中,设置图片路径有2种方法: 1.xaml文件中,指定路径 <Button Name=" HorizontalAlignment="Right" VerticalAlignment="Top" > <Button.Background> <ImageBrush ImageSource="pack://application:,,,/Images/icon_setting_off.png" Stret…
原文:在WPF中自定义控件(3) CustomControl (上) 在WPF中自定义控件(3) CustomControl (上)                              周银辉 为快速地为你的应用定制一个零部件,你需要的是UserControl,这可以参考在WPF中自定义控件(2) UserControl, 为了让你打造的控件更标准化,更灵活以及更具有普遍意义,你需要用到的CustomControl,这正是本文要介绍的. 1,新建CustomControl 在选择控件基类后…
一.StackPanel StackPanel是以堆叠的方式显示其中的控件 1.可以使用Orientation属性更改堆叠的顺序 Orientation="Vertical" 默认,由上到下显示各控件.控件在未定义的前提下,宽度为StackPanel的宽度,高度自动适应控件中内容的高度 1: <StackPanel Orientation="Vertical"> 2: <Button>Button A</Button> 3: &l…
MahApps.Metro.IconPacks https://github.com/MahApps/MahApps.Metro.IconPacks 提供了大量的高质量的图标供WPF使用,极其方便. 时至今日,已包含29个图标库,共25914个图标. 其提供了一个图标检索程序,用于快速找到需要的图标 选中任意图标后,图标上会出现4个按钮,分别提供了对图标不同的使用方式. 在 WPF 中常见的使用方式有两种: 方式1:通过 Nuget 包使用 直接在 vs 中的 Nuget 包管理器中搜索 Mah…
原文:WPF关于控件 父级控件,子级控件,控件模板中的控件,等之间的相互访问 1,在菜单中访问 弹出菜单的控件 var mi = sender as MenuItem;//菜单条目 MenuItem var cm = mi.Parent as ContextMenu;//访问他爹 菜单 contextMenu var t1 = cm.PlacementTarget as ScrollContentPresenter; //访问 弹出此菜单的控件 2.用模版中的子元素 来引用 使用了此模版的控件…