在拥有主题的同时为按钮添加自己的设计

时间:2013-12-17 10:48:42

标签: c# wpf

我的应用程序目前正在调用以下主题:

<Application.Resources>
    <ResourceDictionary Source="themes/WhistlerBlue.xaml"/>
</Application.Resources>

我想在标签后面创建一个隐形按钮,但每当我添加一个按钮时,它就会像其他每个按钮一样。

<Button x:Name="btnHelp"
        Content="Help"
        Foreground="#FF7E8385"
        FontFamily="Calibri"
        FontSize="18"
        Margin="25,11,0,0"
        Click="btnHelp_Click"
        BorderThickness="0"
        Padding="0" />
<GridSplitter HorizontalAlignment="Left"
              Height="30"
              Margin="10,10,0,0"
              VerticalAlignment="Top"
              Width="1"
              Background="#FFB2B2B2"
              Focusable="False" 
              IsTabStop="False"
              IsEnabled="False"/>
<Button x:Name="btnSettings"
        Content="Settings"
        Foreground="#FF7E8385"
        FontFamily="Calibri"
        FontSize="18"
        Margin="10,11,0,0"
        Click="btnSettings_Click">
</Button>

上面的代码是我的按钮,我尝试添加Background ="Transparent",但这没有做任何我也尝试Background = "{x:Null}",这没有做任何事情。

我是新手,学习WPF所以任何帮助都会非常有用。

编辑:这是实际例外的图片:

http://i.stack.imgur.com/ffzNa.png

Master是我创建的Generic页面,因此我没有重复的代码。

我不知道这是否有所不同,但在Master页面的顶部,它设置了Style,如下所示:

<Style TargetType="{x:Type local:Master}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:Master}">
                <StackPanel>
                    <Menu Height="50" Margin="0,0,0,0" HorizontalAlignment="Stretch" FlowDirection="RightToLeft">
                        <Menu.Background>
                            <LinearGradientBrush EndPoint="0,0" StartPoint="0,1">
                                <GradientStop Color="#FFB3DDF2" Offset="1.0"/>
                                <GradientStop Color="#FFD6E9F4" Offset="0.0"/>
                            </LinearGradientBrush>
                        </Menu.Background>
                        <Button x:Name="btnHelp" Content="Help" Foreground="#FF7E8385" FontFamily="Calibri" FontSize="18" Margin="25,11,0,0" Click="btnHelp_Click" BorderThickness="0" Padding="0" Style="{StaticResource TransButtonStyle}" />
                        <GridSplitter HorizontalAlignment="Left" Height="30" Margin="10,10,0,0" VerticalAlignment="Top" Width="1" Background="#FFB2B2B2" Focusable="False" IsTabStop="False" IsEnabled="False"/>
                        <Button x:Name="btnSettings" Content="Settings" Foreground="#FF7E8385" FontFamily="Calibri" FontSize="18" Margin="10,11,0,0" Click="btnSettings_Click">
                        </Button>

1 个答案:

答案 0 :(得分:0)

如果您搜索WhistlerBlue.xaml resource,您可能会发现类似于以下内容的内容:

<Style TargetType="{x:Type Button}">...</Style>

这将特定样式应用于从Button类型派生的任何控件,因此如果您希望其他Button控件看起来不同,则需要更改{{1}中的样式},或创建自己的风格。

resource

然后将其应用于<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}"> <!-- define your settings --> <Setter Property="Background" Value="Transparent" /> </Style> 控件:

Button