错误:“ResourceDictionary”根元素需要 x:Class 特性来支持 XAML 文件中的事件处理程序。请移除 MouseLeftButtonDown 事件的事件处理程序.
来源:互联网 发布:35是不是质数的算法 编辑:程序博客网 时间:2024/06/01 07:49
转载于(https://social.msdn.microsoft.com/Forums/windowsapps/zh-CN/af3161ce-f020-4b0b-9b84-95ae597e53fd/resourcedictionary-xclass-xaml-mouseleftbuttondown-xclass?forum=wpfzhchs)
在资源字典中设置listboxItem的鼠标左击的事件样式。
打出这段代码提示“ResourceDictionary”根元素需要 x:Class 特性来支持 XAML 文件中的事件处理程序。请移除 MouseLeftButtonDown 事件的事件处理程序,或将 x:Class 特性添加到根元素。 ”错误,
这句话是什么意思?难道EventSetter 不能在资源字典中写?
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication1"> <Style x:Key="remenber" TargetType="{x:Type ListBoxItem}" > <Setter Property="Margin" Value="1"></Setter><EventSetter Event="MouseLeftButtonDown" Handler="ProjectMouseLeftButtonDown"/> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="#FF569BEE"></Setter> </Trigger> </Style.Triggers> </Style></ResourceDictionary>
解决思路:
1.首先,EventSetter 是可以在资源字典中写的。那句提示意思是需要在ResourceDictionary标签内加上x:Class特性。
你可以写成这样:
ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication1" x:Class="命名空间.资源字典的名称" ></ResourceDictionary>
命名空间:以你的代码为例,此处应为”WpfApplication1”
资源字典的名称:如果资源字典文件是”Dictionary1.xaml”,这里就是”Dictionary1”
完整写法就是 x:Class=”WpfApplication1. Dictionary1”
2.下面的Demo供你参考:
Dictionary1.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WriteEventInResourceDictionary" x:Class="WriteEventInResourceDictionary.Dictionary1"> <Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}"> <EventSetter Event="PreviewMouseLeftButtonDown" Handler="MyCustomMouseEvent"/> </Style></ResourceDictionary>
Dictionary1.xaml.cs:
namespace WriteEventInResourceDictionary{ public partial class Dictionary1 { private void MyCustomMouseEvent(object sender, RoutedEventArgs e) { MessageBox.Show("Hello"); } }}
MainWindow.xaml:
<ListBox> <ListBoxItem>Item 1</ListBoxItem> <ListBoxItem>Item 2</ListBoxItem> <ListBoxItem>Item 3</ListBoxItem> </ListBox>
App.xaml:
<Application x:Class="WriteEventInResourceDictionary.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WriteEventInResourceDictionary" StartupUri="MainWindow.xaml"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Dictionary1.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources></Application>
阅读全文
1 0
- 错误:“ResourceDictionary”根元素需要 x:Class 特性来支持 XAML 文件中的事件处理程序。请移除 MouseLeftButtonDown 事件的事件处理程序.
- JS中的事件委托和移除事件处理程序
- 事件处理程序和支持它们的HTML元素
- 事件---事件处理程序
- C#中的事件处理程序
- JavaScript中的事件处理程序
- Javascript中的事件处理程序
- 在运行时添加和移除事件处理程序
- js--事件--事件处理程序
- 事件处理程序&&事件对象
- js--事件--事件处理程序
- 事件处理程序/事件侦听器
- javascript中的事件流,事件处理程序/事件监听器
- 事件处理程序和跨浏览器的事件处理程序
- 控制台程序的事件处理
- 窗体事件的处理程序
- 简单的事件处理程序
- JS的事件处理程序
- Python之添加新元素
- Pointers on C——8 Arrays.7
- 高效简洁的android 图片视频选择器
- Pointers on C——8 Arrays.8
- jboss配置多个实例
- 错误:“ResourceDictionary”根元素需要 x:Class 特性来支持 XAML 文件中的事件处理程序。请移除 MouseLeftButtonDown 事件的事件处理程序.
- 语意分割网络笔记
- thinkphp5.0+ajax异步刷新验证用户名是否存在
- nginx 报 413 错误以及解决办法整理
- angularjs 的一些方法
- 3、字符串、向量、数组
- SQL列转字段
- C#+ArcGIS Engine 获取地图中选中的要素
- Text-CNN 文本分类