2017-09-01 97 views
0
<ResourceDictionary 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     mc:Ignorable="d"> 

     <Style TargetType="{x:Type TabControl}"> 
      <Setter Property="Margin" Value="0,5" /> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type TabControl}"> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto" /> 
           <RowDefinition Height="*" /> 
          </Grid.RowDefinitions> 
          <Grid Grid.Row="0"> 
           <Button Style="{StaticResource Button}"/> 
           <Button /> 
          </Grid> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

     <Style TargetType="{x:Type TabItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="TabItem"> 
         <Grid Name="xGrid"> 
          <Border> 
           <ContentPresenter/> 
          </Border> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

     <Style x:Key="Button" TargetType="{x:Type Button}"> 
      <Setter Property="Background" Value="#FF000000" /> 
     </Style> 
</ResourceDictionary> 

我试图添加样式到按钮,但如果我在项目中添加它(<Button Grid.Column="0" Style="{StaticResource Button}"/>),我的项目不运行,并且VS不显示我例外。添加样式到按钮

我的风格保存在一个单独的文件中。

为什么我不能将样式添加到按钮? VS有什么例外不会显示我?

我会接受任何帮助。

谢谢。

p.s.对不起,如果有的话。

编辑#1:

的App.xaml:

<Application x:Class="WpfApp1.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:local="clr-namespace:WpfApp1" 
      StartupUri="View\MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Styles.xaml"/> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

编辑#2:

MainWindow.xaml:

<Window 
    x:Class="WpfApp1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:local="clr-namespace:WpfApp1" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    Title="MainWindow" 
    Width="525" 
    Height="350" 
    AllowsTransparency="True" 
    Background="Transparent" 
    WindowStyle="None" 
    mc:Ignorable="d"> 

      <Grid> 
       <TabControl> 
        <TabItem Header="jhb"> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto" /> 
           <RowDefinition Height="*" /> 
           <RowDefinition Height="Auto" /> 
          </Grid.RowDefinitions> 
         </Grid> 
        </TabItem> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
        <TabItem Header="TabItem" /> 
       </TabControl> 
      </Grid> 
    </Window> 

回答

0

你的合并ResourceDictionary到你的App.xaml

<Application x:Class="WpfApplication1.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:local="clr-namespace:WpfApplication1" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Dictionary1.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

替换Dictionary1.xamlResourceDictionary文件的实际名称。

+0

只是为了进一步澄清,该'ResourceDictionary'(或其他地方的文件中,或链接的文档)应为'StaticResource'密钥提供的值(S):'Button' - https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/staticresource-markup-extension – 2017-09-01 10:59:20

+0

这里没关系。情况是,没有一个样式一切正常,但是当我添加样式到按钮项目不起作用。 – Kirill

+0

那么你的ResourceDictionary在哪里被合并,你的Button在哪里? – mm8