7

RessourceDictionary を介して Application-Theme を変更するオプションを提供するアプリケーションがあります。つまり、純粋な XAML のみを使用できます。

今、私がやりたいことは、ElementName を持たない DockPanel を非表示にすることですが、x:Name プロパティを持つ子を持っています。

<Style TargetType="DockPanel">
         <Setter Property="Visibility" Value="{Binding RelativeSource={RelativeSource Self}, Path=Child.Visibility}"/>
</Style>

このコードでは、DockPanel の最初の子を取得していますが、一意の ElementName を持つ特定の子に値をバインドしたいと考えています。

そのため、すべての DockPanel が消えるわけではなく、「MyTextBox」の Elementname を持つ「TextBox」など、Type の Child を持つものだけが消えます。

誰もそれを行う方法を考えていますか? ありがとう ;-)

4

1 に答える 1

13

DockPanel には親としての境界線があり、このコードを使用して、この境界線の可視性を非表示に設定できます。

<Style TargetType="Border">
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Child.Children[2].Name}"
                         Value="SearchTextBox">
                <Setter Property="Visibility" Value="Hidden"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>

考えられる改善: インデックスごとに TextBox を参照しないでください。子を反復処理します...

于 2013-02-21T11:41:32.740 に答える