我在 XAML 中有四个图像:
<Image Visibility="Collapsed" Name="LeftArrow" Height="20" Width="20"></Image>
<Image Visibility="Collapsed" Name="RightArrow" Height="20" Width="20"></Image>
<Image Visibility="Collapsed" Name="TopArrow" Height="20" Width="20"></Image>
<Image Visibility="Collapsed" Name="BottomArrow" Height="20" Width="20"></Image>
在我的代码隐藏中,我有一个开关盒,当其中一个像这样可见时,它会使所有其他图像折叠起来:
switch (ElementInfoCollection[pos].ArrowDirection)
{
case ArrowDirection.Left:
LeftArrow.Visibility = Visibility.Visible;
RightArrow.Visibility = Visibility.Collapsed;
TopArrow.Visibility = Visibility.Collapsed;
BottomArrow.Visibility = Visibility.Collapsed;
break;
case ArrowDirection.Right:
LeftArrow.Visibility = Visibility.Collapsed;
RightArrow.Visibility = Visibility.Visible;
TopArrow.Visibility = Visibility.Collapsed;
BottomArrow.Visibility = Visibility.Collapsed;
break;
case ArrowDirection.Top:
LeftArrow.Visibility = Visibility.Collapsed;
RightArrow.Visibility = Visibility.Collapsed;
TopArrow.Visibility = Visibility.Visible;
BottomArrow.Visibility = Visibility.Collapsed;
break;
case ArrowDirection.Bottom:
LeftArrow.Visibility = Visibility.Collapsed;
RightArrow.Visibility = Visibility.Collapsed;
TopArrow.Visibility = Visibility.Collapsed;
BottomArrow.Visibility = Visibility.Visible;
break;
default:
LeftArrow.Visibility = Visibility.Collapsed;
RightArrow.Visibility = Visibility.Collapsed;
TopArrow.Visibility = Visibility.Collapsed;
BottomArrow.Visibility = Visibility.Collapsed;
break;
}
显然,这是一种非常愚蠢的方法,所以我想知道当其中一个图像在代码隐藏中设置为可见时如何使图像折叠?到目前为止,这是我想出的:
<UserControl.Resources>
<Style x:Key="ArrowSwitch" TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger >
<Setter Property="Image.Visibility" Value="Collapsed"></Setter>
</DataTrigger>
<DataTrigger>
<Setter Property="Image.Visibility" Value="Visible"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>