仅使用 XAML ,我想隐藏一个元素,例如textblock
或image
具有list
或stackpanel
元素。
例如,请参见以下代码
<Label x:Name="LabelTobeHidden"
Content="No one has joined"
Visibility="Visible"
/>
<StackPanel x:Name="Players" Orientation="Vertical"/>
我可以使用CS来做到这一点,但是我想知道一种仅在XAML中做到这一点的方法,以尽最大努力确保CS仅具有应用程序逻辑。
修改:
我正在以编程方式将元素添加到堆栈面板中。
答案 0 :(得分:1)
您可以在DataTrigger
中使用Style
。
这是我们的StackPanel
要注意的事项:
<StackPanel x:Name="StackPanelToWatch" Orientation="Horizontal">
<Rectangle Width="50" Height="50" Fill="Red"/>
</StackPanel>
这是要隐藏的Label
:
<Label Content="text">
<Label.Style>
<Style TargetType="Label">
<Style.Triggers>
<DataTrigger Binding="{Binding Children.Count, ElementName=StackPanelToWatch}" Value="0">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>