簡體   English   中英

為什么不應用使用MahApps.Metro的DataGridCheckBoxColumn的樣式? WPF

[英]Why is the style of DataGridCheckBoxColumn using MahApps.Metro not being applied? WPF

我正在從類庫啟動WPF窗口。 我的XAML樣式如下所示:

<Controls:MetroWindow x:Class="AeonPlanter.UI.Window"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:AeonPlanter.UI"
         xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
         mc:Ignorable="d" d:DesignWidth="400" Background="White" Width="400" Height="447.333" Loaded="MetroWindow_Loaded" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" Title="AeonPlanter" EnableDWMDropShadow="True">
<Controls:MetroWindow.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
            <!-- Accent and AppTheme setting -->
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Controls:MetroWindow.Resources>
<DataGrid x:Name="dtg_InventoryItems" HorizontalAlignment="Left" Margin="10,208,0,0" VerticalAlignment="Top" Width="360" Height="150" AutoGenerateColumns="False">

                <DataGrid.Columns>
                    <DataGridCheckBoxColumn Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Path=PlantItem, Mode=OneWay}" 
                                            ClipboardContentBinding="{x:Null}" 
                                            Header="Plant" 
                                            Width="58" 
                                            ElementStyle="{DynamicResource MetroDataGridCheckBox}" 
                                            EditingElementStyle="{DynamicResource MetroDataGridCheckBox}" CanUserReorder="False" CanUserResize="False" CanUserSort="False" />

                    <DataGridTextColumn Binding="{Binding ItemName}" CanUserResize="False" ClipboardContentBinding="{x:Null}" Header="Name" Width="*" IsReadOnly="True"/>
                    <DataGridTextColumn Binding="{Binding ItemId}" CanUserResize="False" ClipboardContentBinding="{x:Null}" Header="ID" IsReadOnly="True" Width="58"/>
                    <Controls:DataGridNumericUpDownColumn Binding="{Binding PlantAmount}" Header="Plant X" Width="70" CanUserReorder="False" CanUserResize="False" CanUserSort="False"/>
                </DataGrid.Columns>
            </DataGrid>

現在的問題是,盡管在設計器中它正確顯示,但復選框列具有默認樣式而不是Metro。

我還向數據網格添加了以下樣式:

<Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}" />

但是沒有運氣。

任何想法為什么會這樣?

使用{StaticResource}標記擴展名:

<DataGridCheckBoxColumn ...
                    ElementStyle="{StaticResource MetroDataGridCheckBox}" 
                    EditingElementStyle="{StaticResource MetroDataGridCheckBox}"

或在App.xaml文件中合並資源詞典:

<Application x:Class="AeonPlanter.UI.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 StartupUri="Window.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
                <!-- Accent and AppTheme setting -->
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

</Application>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM