Tag: wpf

当焦点在WindowsFormsHost中时,为什么Keyboard.FocusedElement为null? 它打破了WPF命令路由

我有一个自定义的RoutedUICommand MyCommand ,它通过ICommand.Execute执行。 顶部窗口有一个绑定来处理它: 这是此命令的唯一处理程序。 我还有一个带有WinForms的TextBox控件的WindowsFormsHost (用于演示目的)。 当焦点位于此TextBox , MyCommand不会到达顶部窗口。 当焦点位于WPF的本机TextBox ,将按预期调用命令处理程序。 我已经发现这种情况正在发生,因为当焦点在WindowsFormsHost时, Keyboard.FocusedElement为null 。 在这种情况下,为什么它为null ,是WPF错误还是设计function? 我错过了什么吗? 我相信命令应该到达顶部窗口,无论焦点在哪里 (当它是可视树中唯一的处理程序并且FocusManager.IsFocusScope设置正确时)。 我有一个相关的问题 。 项目来源可在此处获得 。 XAML: C#: using System; using System.Windows; using System.Windows.Input; namespace WpfCommandTest { public partial class MainWindow : Window { public static readonly RoutedUICommand MyCommand = new RoutedUICommand(“MyCommand”, “MyCommand”, typeof(MainWindow)); const string Null […]

MVVM在点击时更改网格的背景颜色

我是MVVM模式的真正初学者。 我正试图在按钮的点击上更改网格的背景。 我有一个包含按钮的网格的xaml,以及一个ViewModel .cs,我希望在按钮点击时更改网格的背景。 直到我点击时才能成功显示MessageBox … .xaml代码: MainWindowViewModel.cs代码: namespace WpfSimple { class MainWindowViewModel { private ICommand m_ButtonCommand; public ICommand ButtonCommand { get { return m_ButtonCommand; } set { m_ButtonCommand = value; } } public MainWindowViewModel() { ButtonCommand=new RelayCommand(new Action(ChangeBgColor)); } public void ChangeBgColor(object obj) { /*HERE I WANT TO CHANGE GRID COLOR*/ } } } […]

当我执行输入手势时,为什么不设置MenuItem.InputGestureText会导致MenuItem激活?

我想为MenuItem实现键盘快捷键。 我使用过以下代码: ` 但是当我按下CTRL+N时, InputGestureText属性没有响应。 我正在使用Visual Studio Express Edition 2010.我在这里遗漏了什么吗?

WPF:如何将Unicode字符转换为共享资源?

我有这个XAML: 有没有办法改变那个unicode角色ⓘ 进入共享资源(如常量或StaticResource )? 我试过的 方法1 这工作正常,但它需要有效的绑定才能工作: {0} ⓘ 在代码背后: public string MyText { get; set; } = “Message with unicode char: “; 方法2 这种方法似乎可行,但没有运气: {0} ⓘ

使用SetTarget方法定位多个对象的故事板不起作用

任何人都可以帮助我找出为什么这不起作用。 Brush变量包含一个预先填充的画笔列表。 如果我尝试在迭代期间直接应用BeginAnimation ,它可以正常工作。 但是每个动画分别开始有很大的开销…… 所以我试图将所有动画放在一个故事板中,然后立即将它们全部解开…… var storyBoard = new Storyboard(); var duration = new Duration(TimeSpan.FromMilliseconds(time)); foreach (Brush brush in brushes) { var animation = new DoubleAnimation(toValue, duration); storyBoard.Children.Add(animation); Storyboard.SetTargetProperty(animation, new PropertyPath(Brush.OpacityProperty)); Storyboard.SetTarget(animation, brush); } storyBoard.Begin(); 这段代码什么都不做(我可以看到……)。 谢谢!! 编辑:仍然不确定SetTarget方法有什么问题,要么是一个bug,要么我只是不应该使用它。 无论如何,我解决了在运行时使用SetTargetName方法为我的画笔生成唯一名称的问题。 再次感谢所有的建议。

entity framework4.1不向SQL Server Express数据库添加任何行

使用带有SQL Server Express .mdf数据库的Entity Framework 4.1。 出于测试目的,我尝试在WPF应用程序中使用实体模型在SQL Server Express数据库上执行CRUD操作。 我是这个概念的新手,我按照video教程进行了编码 我创建了单个非常简单的表的实体模型。 我在cs文件中编写了简单的代码,使用以下代码执行向数据库添加一行 testEntities db = new testEntities(); TestTable tb = new TestTable(); tb.Name = txtName.Text; tb.Email = txtMail.Text; db.TestTables.AddObject(tb); db.SaveChanges(); 但如果我回去检查数据库,则不会添加任何数据。 请告诉我这里出了什么问题? 这是我的连接字符串

WPF + MVVM + RadioButton:处理与单个属性的绑定

从这个以及关于SO的这个 (和其他)问题以及互联网上的许多其他材料,我理解了如何将单选按钮与VM绑定。 但是所有这些都为单选按钮的每个可能值创建了单独的属性。 一个问题( 这个 )类似于我的要求,但接受的答案建议使用ListBox而不是单选按钮。 要表示人员性别(数据类型CHAR,可能值’M’,’F’),需要在VM中创建三个属性,如PersonGender,IsPersonMale,IsPersonFemale。 我想只在一个属性PersonGender上控制它。 我可以这样做吗? 如果有,怎么样?

如何在后面的代码中将ItemsPanelTemplate设置为动态创建的Grid

我已经在XAML定义了这个UserControl ,并希望在我的代码后面动态设置ItemsPanelTemplate (不像示例中的XAML ): 我尝试过类似的东西 this.Items.ItemsPanel.Template = new Grid(); 但悲惨地失败了。 有帮助吗? 背景:我只知道运行时网格列和行的数量。

如何通过用户的XAML动态地向UserControl添加控件?

我想创建一个包含TextBlock和StackPanel的用户控件,允许用户在XAML中动态地将他/她自己的控件添加到用户控件。 以下是我的UserControl的示例XAML: 我希望用户能够将此用户控件嵌入到他们的XAML中,并将他们自己的控件添加到用户控件的堆栈面板中: 使用上述XAML执行此操作不起作用。 有任何想法吗?

如果在WPF中不再存在,Triggers / DataTrigger会返回到先前的状态吗?

它说,在阅读MSDN上的DataTrigger时 表示在绑定数据满足指定条件时应用属性值或执行操作的触发器。 它的意思是 当触发器为true时,它会将值更改为所需的值。 但是,这可以推断出来吗? 当它不再为真时,它将值返回到先前的值。 我是怎么得出这个结论的 我这样做了 当FooProperty折叠时,它将mybutton的IsEnabled更改为False和Opacity为0.5 现在,当FooProperty变得可见时,它将mybutton的IsEnabled更改为True和Opacity为1即使我没有写任何触发器来恢复到以前的值。 这是DataTrigger的内置function还原为以前的值当它不再是真的吗? 如果是,是否有任何Microsoft / MSDN文档certificate这一点?