![](/img/trans.png)
[英]WindowsFormsHost is not visible when AllowsTransparency=“True” What are the risks of setting it to false?
[英]BooleanToVisibilityConverter that converts to Visible when true or null and Collapsed when false
我在 ThreeState ToggleButton 和普通按钮之间做了一些绑定
这就是我想要实现的目标:
button#1可见,如果button#2 IsChecked=True 或 Null
如果按钮#2 IsChecked=False,则按钮#1折叠
内置 BooleanToVisibilityConverter 仅在 true 时显示按钮。
如果您能对转换器提供帮助,我将不胜感激。 谢谢
这非常简单。 当value
true
或null
时,以下IValueConverter
返回Visibility.Visible
:
public sealed class BooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value is bool bValue && bValue
|| value == null
? Visibility.Visible
: Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value is Visibility visibility
&& visibility == Visibility.Visible;
}
}
并且没有 BooleanToVisibilityConverter,只有 XAML:
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Visibility"
Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=chk1, Path=IsChecked}"
Value="False">
<Setter Property="Visibility"
Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Button Content="Button"
HorizontalAlignment="Left"
Margin="34,68,0,0"
VerticalAlignment="Top"
Width="75" />
<CheckBox x:Name="chk1"
Content=" Toggle"
HorizontalAlignment="Left"
Margin="34,29,0,0"
VerticalAlignment="Top"
IsThreeState="True"
IsChecked="True" />
</Grid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.