кнопка удаления wpf, затем снова добавьте ее в то же место

У меня есть 3 кнопки подряд внутри док-панели (может быть, это не та панель для меня?). Каждая кнопка закреплена слева.

|Button1|Button2|Button3|

Я хотел бы динамически удалить любую из кнопок и добавить их обратно во время выполнения.

Кнопки всегда должны иметь один и тот же порядок.

Если я сделаю Button1.Visibility = Visibility.Hidden, то он исчезнет, ​​но пространство останется, а это не то, чего я хочу, я хочу, чтобы другие кнопки были смещены влево следующим образом:

|Button2|Button3|

Если я удалю и добавлю такую ​​кнопку:

DockButtons.Children.Remove(Button1); DockButtons.Children.Add(Button1);

Он удаляет Button1 слева и добавляет его справа следующим образом:

|Button2|Button3|Button1| 

Что опять же не то, что я хочу. Я хочу сохранить порядок кнопок одинаковым.

Любая идея, что я делаю неправильно?

Спасибо заранее


person Andy    schedule 17.05.2013    source источник


Ответы (2)


Вам необходимо установить для параметра Видимость значение "Свернуто", что не отображать его и не сохранять пространство, которое он будет потреблять.

person Brandon Moretz    schedule 17.05.2013

Использование функции «Свернутая видимость» вместо «Скрытая видимость» не сохранит для нее место и не отобразит ее. Поэтому изменение вашей реализации на свернутое должно исправить это.

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

Если вы хотите удалить кнопку 1, удалите все кнопки, затем добавьте кнопку 2, затем добавьте кнопку 3.

Хотя как я и говорил сначала обзорность развалилась было бы идеально.

person Josh    schedule 17.05.2013