为什么我的自定义现代UI风格不适用?

时间:2013-07-09 02:01:27

标签: c# windows-8 styles setter modern-ui

好的,所以我知道关于GUI开发的 little 位,并且是Windows 8(现代UI)的新手 如果可能的话,我也想用C#(没有XAML)来做这件事。

样式 我在这里要做的是创建一个我可以应用于其他地方创建的按钮的样式。

    public static Style firstButtonStyle()
    {
        firstButton = new Style(typeof(Button));
        ControlTemplate btnControl = new ControlTemplate();

        //firstButton.Setters.Add(new Setter(Button.TemplateProperty, btnControl));
        firstButton.Setters.Add(new Setter(Button.BackgroundProperty, new SolidColorBrush(Windows.UI.Colors.Blue)));
        firstButton.Setters.Add(new Setter(Button.IsPointerOverProperty, new SolidColorBrush(Windows.UI.Colors.PaleGreen)));
        firstButton.Setters.Add(new Setter(Button.IsPressedProperty, Windows.UI.Colors.Beige));
        firstButton.Setters.Add(new Setter(Button.ForegroundProperty, Windows.UI.Colors.Red));

        return firstButton;
    }

应用

这是创建按钮并应用样式的地方。

    private Button enterButtonCreation(string text)
    {
        Button enterButton = new Button();
        enterButton.Content = text;
        enterButton.Margin = new Thickness(200, 80, 20, 0);
        Style firstButtonStyl = WikierStyle.firstButtonStyle();
        enterButton.Style = firstButtonStyl;
        enterButton.Background = new SolidColorBrush(Windows.UI.Colors.Silver);
        return enterButton;

    }

我可以使用.Background更改背景白银,但是当使用.BackgroundProperty时,似乎没有任何事情发生。

1 个答案:

答案 0 :(得分:0)

我首先建议您尝试在xaml文件中完成所有样式工作,例如尝试在xaml页面中声明custum样式。如果你只想在特定页面中使用custumstyle,那么就像这样定义你的页面。你可以在任何按钮上应用这种风格。

<Page
x:Class="Appgridcheck.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Appgridcheck"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Page.Resources>
    <Style TargetType="Button" x:Name="CustomStyle" >
        <Setter Property="Background" Value="White" />
    </Style>
</Page.Resources>
    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Button Style="{StaticResource CustomStyle}" />
</Grid>

其次,如果你想定义你可以在你的整个应用程序中使用的全局custumStyle(意思是在所有页面上),那么在app.xaml中定义这样的风格。

<Application
x:Class="Appgridcheck.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Appgridcheck">

<Application.Resources>
    <ResourceDictionary>

        <Style TargetType="Button" x:Name="gllobalCustomstyle" >
            <Setter Property="Background" Value="Black" />
        </Style>

        <ResourceDictionary.MergedDictionaries>

            <!-- 
                Styles that define common aspects of the platform look and feel
                Required by Visual Studio project and item templates
             -->
            <ResourceDictionary Source="Common/StandardStyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>

    </ResourceDictionary>
</Application.Resources>

现在你在任何页面上使用这个tyle ..希望这会有所帮助..