<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>
只是为了进一步澄清,该'ResourceDictionary'(或其他地方的文件中,或链接的文档)应为'StaticResource'密钥提供的值(S):'Button' - https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/staticresource-markup-extension – 2017-09-01 10:59:20
这里没关系。情况是,没有一个样式一切正常,但是当我添加样式到按钮项目不起作用。 – Kirill
那么你的ResourceDictionary在哪里被合并,你的Button在哪里? – mm8