Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 样式防止复选框响应鼠标单击_C#_Wpf_Xaml_Checkbox_Themes - Fatal编程技术网

C# 样式防止复选框响应鼠标单击

C# 样式防止复选框响应鼠标单击,c#,wpf,xaml,checkbox,themes,C#,Wpf,Xaml,Checkbox,Themes,我最近下载了ReuxablesLegacy WPF主题,我遇到了一个奇怪的问题。我的程序包含一个带有一列复选框的列表视图。在没有主题的情况下,它们的功能正常,并对鼠标交互做出反应。但是,当主题处于活动状态时,复选框根本不会响应鼠标单击。单击复选框时,不会触发Click、MouseDown和PreviewMouseDown事件。不过,MouseDown事件确实会在ListView上触发。我已尝试禁用复选框本身的样式,但问题仍然存在。如果我通过单击按钮修改复选框,则它们的行为正常 <Appli

我最近下载了ReuxablesLegacy WPF主题,我遇到了一个奇怪的问题。我的程序包含一个带有一列复选框的列表视图。在没有主题的情况下,它们的功能正常,并对鼠标交互做出反应。但是,当主题处于活动状态时,复选框根本不会响应鼠标单击。单击复选框时,不会触发Click、MouseDown和PreviewMouseDown事件。不过,MouseDown事件确实会在ListView上触发。我已尝试禁用复选框本身的样式,但问题仍然存在。如果我通过单击按钮修改复选框,则它们的行为正常

<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;
    }
}