Как скрыть текстовые поля, метки и кнопки C# WPF

Я хотел бы скрыть несколько текстовых полей, метку и кнопку, как только кнопка нажата... однако по какой-то причине мой код, похоже, не вызывает этого эффекта. Кажется, ничего не происходит. Я использую WPF.

вот мой код:

private void doSomething_Click(object sender, RoutedEventArgs e)
    {

        Name.Visibility = Visibility.Hidden; 

    }

этот код, похоже, не работает.. есть идеи?

5 ответов


ваш код, кажется, работает нормально, "вход...- ярлык появляется после того, как все остальное исчезает. Я предлагаю вам просто скопировать весь код из .код XAML.cs-файл и то .XAML-файл в новый проект, но убедитесь, что вы не копируете первую строку"<Window x:Class="..." потому что это может привести к ошибке, если имя класса не совпадает в новом проекте.

для кода xaml я предлагаю вам не думать так же, как вы разрабатываете приложения windows forms. WPF имеет систему компоновки, которая переориентирует или изменяет размеры элементов при изменении размера окна. Поэтому вы не должны указывать точные числа в свойстве margin, как если бы они были координатами. Создайте сетку, создайте строки или столбцы для каждого элемента, а затем просто установите горизонтальное или вертикальное выравнивание или поля. Думайте иначе, чем старый способ windows forms.


Я считаю Visibility.Collapsed Это то, что вам нужно, а не Visibility.Hidden.

EDIT: вы пытались выполнить этот код с помощью UpdateLayout() метод родительского элемента/компонента?


Я запустил ваш код... и это отлично работает для меня. Я ничего не изменил (кроме имен переменных), поэтому я думаю, что это ошибка от VS.

Как сказал nikolamm94 попробуйте добавить this.UpdateLayout(); в конце connect_Click это может помочь. Я пробовал, и он все еще работает нормально. Или, может быть, создать новый VS projet, он уже работал для меня несколько раз.

извините, мой ответ не самый полезный, я хотел бы поставить комментарий Вместо этого, но у меня недостаточно репутации :/


вы можете скрыть текстовое поле, перейдя в properties - >appearance - >visibility, а затем установив его в "hidden"


обращайтесь: https://msdn.microsoft.com/en-us/library/ms748821(В=и 85).аспн

видимый: ТВ1.Видимость = Система.Окна.Видимость.Видимый;

набор скрывать: ТВ1.Видимость = Система.Окна.Видимость.Скрытый;