1

があるとしましょうListView。私たちのどこかに、自動的に適用されるforResourcesがあります。それは以下を設定します:StyleListViewStyleItemContainerStyle

<Window.Resources>
    <Style TargetType="{x:Type ListView}">
        <Setter Property="ItemContainerStyle">
            ...
        </Setter>
    </Style>
</Window.Resources>
...
<ListView x:Name="SpecialListView">
    ...
</ListView>

ItemContainerStyle今、私はのを変更したいと思いSpecialListViewます。ただし、完全に置き換えたいわけではありません。代わりに、1 つのプロパティを設定したいだけです (としましょうBackground)。

私が思いつく唯一の解決策は、Style使用済みにItemContainerStyle名前を付け、Resourcesそれに基づいて新しいものを作成することです。でも、私はそれをしたくありません。どちらが適用されているかわからないかStyle、サブの名前を設定できない場合がありますStyle

出来ますか?

4

2 に答える 2

-1

わかりました、これは少し単純化されているかもしれません。しかし、主なアイデアを示しています

<Window.Resources>
        <Style TargetType="{x:Type TextBox}">
            <Setter Property="Foreground" Value="Green"></Setter>
            <Setter Property="Background" Value="Red"></Setter>
        </Style>
    </Window.Resources>
    <StackPanel>
        <TextBox>
            <TextBox.Style>
                <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
                    <Setter Property="Background" Value="Yellow"></Setter>
                </Style>
            </TextBox.Style>
            Tb1
        </TextBox>
        <TextBox>Tb2</TextBox>
        <TextBox>Tb3</TextBox>
    </StackPanel>
于 2015-10-29T13:32:29.993 に答える