C# 资源字典不';UserControl中的t样式按钮

C# 资源字典不';UserControl中的t样式按钮,c#,wpf,xaml,dictionary,user-controls,C#,Wpf,Xaml,Dictionary,User Controls,启动应用程序时,按钮背景未设置。所有按钮都放置在用户控件中。My resource dictionary位于其自己的项目中,由App.xaml中的以下代码调用 <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/UMLDiagra

启动应用程序时,按钮背景未设置。所有按钮都放置在用户控件中。My resource dictionary位于其自己的项目中,由App.xaml中的以下代码调用

 <Application.Resources>

    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/UMLDiagram.Windows.Theme;component/Theme.xaml"/>
        </ResourceDictionary.MergedDictionaries>


        <DataTemplate DataType="{x:Type Model:ClassData}">
            <Canvas>
                <View:ClassDataUserControl/>
            </Canvas>
        </DataTemplate>

        <DataTemplate DataType="{x:Type Model:Connector}">
            <Canvas>
                <View:ConnectorUserControl/>
            </Canvas>
        </DataTemplate>

    </ResourceDictionary>

   </Application.Resources> 

UserControl中的代码如下所示:

 <UserControl x:Class="UMLDiagram.View.SidePanelUserControl"
         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" 
         mc:Ignorable="d" 
         d:DesignHeight="600" d:DesignWidth="240">

 <StackPanel Width="240">
    <Label Content="TOOLBOX" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20" FontFamily="Stencil" Foreground="#FF355BAE"/>
    <GroupBox Header="File" Foreground="White" Margin="6" Height="91">
        <Grid Margin="0,0,0,30">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="2*"/>
                <ColumnDefinition Width="25*"/>
                <ColumnDefinition Width="27*"/>
            </Grid.ColumnDefinitions>
            <Button Content="Open" Command="{Binding OpenCommand}" Margin="6,4,6,0" Grid.ColumnSpan="2" Height="26" VerticalAlignment="Top"></Button>
            <Button Grid.Column="2"  Content="Save" Command="{Binding SaveCommand}" Margin="6,4,6,0" Height="26" VerticalAlignment="Top" ></Button>
            <Button Content="Save As.." Command="{Binding SaveAsCommand}" Margin="56,40,56,-26" Grid.ColumnSpan="2" Height="25" VerticalAlignment="Top" Grid.Column="1"></Button>
        </Grid>
    </GroupBox>
    <GroupBox Header="Undo / Redo" Foreground="White" Margin="6">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="2*"/>
                <ColumnDefinition Width="25*"/>
                <ColumnDefinition Width="27*"/>
            </Grid.ColumnDefinitions>
            <Button Content="Undo" Command="{Binding UndoCommand}" Margin="6,4" Grid.ColumnSpan="2"></Button>
            <Button Grid.Column="2"  Content="Redo" Command="{Binding RedoCommand}" Margin="6,4"></Button>
        </Grid>
    </GroupBox>
    <GroupBox Header="Class Diagram" Foreground="White" Margin="6">
        <StackPanel>
            <Button Content="Add Class" Command="{Binding AddClassDataCommand}"></Button>
            <DataGrid x:Name="classDataControl" Height="140" ItemsSource="{Binding ClassDatas}" HeadersVisibility="Column" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding Number}" Header="ID" Width="*" IsReadOnly="True"/>
                    <DataGridTextColumn Binding="{Binding ClassName}" Header="Class Name" Width="*"/>
                </DataGrid.Columns>
            </DataGrid>
            <Button Content="Remove Class" Command="{Binding RemoveClassDataCommand}" CommandParameter="{Binding SelectedItems, ElementName=dgClassData}"></Button>         
        </StackPanel>
    </GroupBox>
    <GroupBox Header="Relations" Foreground="White" Margin="6">
        <StackPanel>
            <Button Content="Add Relation" Command="{Binding AddConnecterCommand}"></Button>
            <Button Content="Remove Relation" Command="{Binding RemoveConnecterCommand}" CommandParameter="{Binding SelectedItems, ElementName=dgEdges}"></Button>
        </StackPanel>
    </GroupBox>
    <GroupBox Header="Zoom" Foreground="White" Margin="6">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Button Content="In" Command="{Binding ZoomInCommand}" Margin="6,4" ></Button>
            <Button Grid.Column="1"  Content="Out" Command="{Binding ZoomOutCommand}" Margin="6,4"></Button>
        </Grid>
    </GroupBox>
    <StackPanel.Background>
        <SolidColorBrush Color="#B8C3CF"></SolidColorBrush>
    </StackPanel.Background>
  </StackPanel>
 </UserControl>

我不明白为什么它不起作用——这本字典应该没问题

我的UserControl或App.xaml中是否缺少某些内容

谢谢,
Mikael

您是否偶然查看了此链接?没有什么会立即突出。Theme.xaml是否在另一个项目的根目录中?Theme.xaml中的按钮样式定义是否包含“x:Key”定义?您可以发布Theme.xaml中的相关标记吗?谢谢大家的帮助-解决方案实际上非常清楚:我的按钮样式中没有任何x:Key定义。此外,我需要在按钮处使用“staticResourceKey=buttonBrush”属性。