C# 样式防止复选框响应鼠标单击
我最近下载了ReuxablesLegacy WPF主题,我遇到了一个奇怪的问题。我的程序包含一个带有一列复选框的列表视图。在没有主题的情况下,它们的功能正常,并对鼠标交互做出反应。但是,当主题处于活动状态时,复选框根本不会响应鼠标单击。单击复选框时,不会触发Click、MouseDown和PreviewMouseDown事件。不过,MouseDown事件确实会在ListView上触发。我已尝试禁用复选框本身的样式,但问题仍然存在。如果我通过单击按钮修改复选框,则它们的行为正常C# 样式防止复选框响应鼠标单击,c#,wpf,xaml,checkbox,themes,C#,Wpf,Xaml,Checkbox,Themes,我最近下载了ReuxablesLegacy WPF主题,我遇到了一个奇怪的问题。我的程序包含一个带有一列复选框的列表视图。在没有主题的情况下,它们的功能正常,并对鼠标交互做出反应。但是,当主题处于活动状态时,复选框根本不会响应鼠标单击。单击复选框时,不会触发Click、MouseDown和PreviewMouseDown事件。不过,MouseDown事件确实会在ListView上触发。我已尝试禁用复选框本身的样式,但问题仍然存在。如果我通过单击按钮修改复选框,则它们的行为正常 <Appli
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/ReuxablesLegacy;component/sleek.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
有谁能告诉我这个主题是什么导致了这种行为的吗?他们可能正在抑制这些事件,就像Xceed一样。。。尝试改用MouseLeftButtonDown。您能提供一个具有相同问题和此主题的测试项目吗?我通过处理ListView的双击事件并使用强制转换将正确的轨迹和事件的sender参数隔离,并切换其IsSelected属性,找到了解决此问题的功能性方法。就我而言,这实际上比点击复选框本身更流畅。
<ListView x:Name="listView"
ItemsSource="{Binding Album.Tracks}">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected,
Mode=TwoWay}"
IsEnabled="{Binding IsDownloadable}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
private void ExecuteSelectAll()
{
foreach (var track in Album.Tracks.Where(t => t.IsDownloadable))
{
track.IsSelected = true;
}
}
private void ExecuteSelectNone()
{
foreach (var track in Album.Tracks)
{
track.IsSelected = false;
}
}