2

XAMLStyleで WPFを設定しようとしました。WindowVS Designer で変更を確認できますが、アプリケーションを実行すると、常にデフォルトのStyle.

動作しない:

<Style TargetType="Window">
    <Setter Property="Background" Value="Red"/>
</Style>

Styleキーでそれを与えてそれを適用するStyleWindow、それは機能しています。

働く:

<Style x:Key="window" TargetType="Window">
    <Setter Property="Background" Value="Red"/>
</Style>

Styleのキーを指定する必要がある理由はありWindowますか?

何が起こっているのか説明してもらえますか?

4

3 に答える 3

1

で構築を追加する必要がありWindowます。

Style="{StaticResource {x:Type Window}}"

スタイルはファイルにありますApp.xaml:

<Application x:Class="WindowStyleHelp.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         StartupUri="MainWindow.xaml">

    <Application.Resources>
        <!-- In this case, the key is optional --> 
        <Style x:Key="{x:Type Window}" TargetType="{x:Type Window}">
            <Setter Property="Background" Value="Pink" />
        </Style>
    </Application.Resources>
</Application>

XAML のウィンドウ:

<Window x:Class="WindowStyleHelp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
    Style="{StaticResource {x:Type Window}}"
    WindowStartupLocation="CenterScreen">

    <Grid>

    </Grid>
</Window>
于 2013-08-02T18:24:28.803 に答える
0

試す

<Style TargetType="{x:Type Window}">
    <Setter Property="Background" Value="Red"/>
</Style>
于 2013-08-02T18:21:18.580 に答える
0

スタイルのターゲット型は、派生型には適用されません。

StaticResourceすべてのウィンドウにキーを適用するために使用するか-

<Application x:Class="WpfApplication4.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WpfApplication4"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <Style x:Key="MyStyle" TargetType="Window">
            <Setter Property="Background" Value="Red"/>
        </Style>
    </Application.Resources>
</Application>

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        Style="{StaticResource MyStyle}">

また

style for your type (derived window)次のようにリソースでa を定義します -

<Application x:Class="WpfApplication4.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>
        <Style TargetType="{x:Type local:MainWindow}">
            <Setter Property="Background" Value="Red"/>
        </Style>
    </Application.Resources>
</Application>
于 2013-08-02T19:04:18.573 に答える