[英]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.