0

XAMLリソースセクションでスタイルを定義し、そのTargetTypeプロパティを特定のコントロールタイプに設定する場合、そのタイプのコントロールにStyleプロパティを設定する必要はありません。例えば

<Window.Resources>
        <Style TargetType="Button">
            <Setter Property="Content" Value="Style set for all buttons"/>
            <Setter Property="Background" Value="Gray"/>
        </Style>
    </Window.Resources>
    <Grid>
        <Button Height="27" HorizontalAlignment="Left" Margin="119,56,0,0" Name="button1" VerticalAlignment="Top" Width="140" />
        <Button Style="{x:Null}" Content="No Style" Height="27" HorizontalAlignment="Left" Margin="212,121,0,0" Name="button2" VerticalAlignment="Top" Width="141" />
        <Button  Content="Button" Height="25" HorizontalAlignment="Left" Margin="296,183,0,0" Name="button3" VerticalAlignment="Top" Width="158" />
    </Grid>

ただし、ウィンドウ内のすべてのコントロールのスタイルを定義する場合は、各コントロールにStyleプロパティを追加して、その定義されたスタイルを設定する必要があります。例えば

<Window.Resources>
        <Style x:Key="Style1" TargetType="Control">
            <Setter Property="Control.Background" Value="Gray"/>
        </Style>
    </Window.Resources>
    <Grid>
        <Button Style="{StaticResource Style1}" Content="Button" Height="23" HorizontalAlignment="Left" Margin="67,52,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
        <Label Style="{StaticResource Style1}" Content="Label" Height="27" HorizontalAlignment="Left" Margin="189,99,0,0" Name="label1" VerticalAlignment="Top" Width="83" />
    </Grid>

ボタンとラベルのコントロールで特にスタイルプロパティを設定せずに、上記の例のボタンとラベルを使用してスタイル「Style1」にアクセスすることはできませんか?

前もって感謝します。

4

2 に答える 2

1

<Style TargetType="Button" BasedOn="{StaticResource style1}"/>ボタン、その他のラベルなどを試してみてください...

于 2013-01-07T01:44:58.243 に答える
1

ここと同様の質問

一般的なコンセンサスは、コントロールだけのように難解なものにスタイルを適用することはできないということです。幅広いプロパティとコントロールを考慮すると、システムがそれを拒否/無視する理由を理解できます。私はあなたが望むものにかなり近づくためにおそらくこのようなものを提案するでしょう:

<Style x:Key="general" TargetType="{x:Type Control}">
        <Setter Property="Control.Background" Value="Green"/>
</Style>
<Style BasedOn="{StaticResource general}" TargetType="{x:Type Button}"/>
<Style BasedOn="{StaticResource general}" TargetType="{x:Type Label}"/>
<Style BasedOn="{StaticResource general}" TargetType="{x:Type CheckBox}"/>
于 2013-01-07T01:54:34.843 に答える