Да, вы не можете иметь возможность установить истинное ложное непосредственно в управление видимостью собственности.
Видимость свойство принимать только Visibility.Visible/Visibility.Hide/Visibility.collapsed
- Visible -> Учитывая видимость контроля
- Hide -> Скрыть элемент управления, но пустое пространство (колпака между верхняя & Нижняя панель управления)
- Свернутый -> Скрыть элемент управления и удалить пустое место.
Если вы хотите присвоить значение true/false в видимости ваших элементов управления, вы хотите использовать преобразователь.
конвертер Класс:
public class BooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
XAML:
Сначала добавьте имя пространства, второй добавить ссылку и вызов конвертер в свой контроль, как ниже Text Box.
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:local="clr-namespace:WpfApplication1"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<local:BooleanToVisibilityConverter x:Key="boolToVisibilityConverter"/>
</UserControl.Resources>
<Grid>
<TextBox Text="{Binding Name}" Visibility="{Binding IsVisibileName, Converter={StaticResource boolToVisibilityConverter}}" />
</Grid>
</UserControl>
Один '=' является _assignment operator_. Вы ищете оператор _equality_ ('=='). Так что просто знак двойного равенства: if (Test1.Visibility == Visibility.Visible) ' – khlr
Хахаха, вот и все, чувствуя себя действительно глупо сейчас – user6480540