#c# #silverlight #gridsplitter
#c# #silverlight #разделитель сетки
Вопрос:
Возможно ли установить ширину столбца для сетки в Silverlight? У меня есть сетка (не вид сетки) с двумя столбцами. ColumnA и ColumnB. Чего я пытаюсь достичь, так это того, что когда пользователь нажимает на кнопку в ColumnA, ширина ColumnA устанавливается равной .01. Затем ColumnB должен расширить всю ширину сетки, чтобы заполнить оставшуюся область. Аналогично тому, как вы закрепляете или открепляете панель dock?
Это лучший подход или мне следует вернуться к dockpanel и позволить SL справиться с этим? Я бы предпочел управлять этим самостоятельно, а не использовать элемент управления RAD, поскольку я думаю, что это немного раздуто для такой маленькой и, казалось бы, простой задачи.
Еще одна моя мысль заключалась в том, чтобы использовать разделитель сетки, но я не был уверен в том, как программно свернуть или развернуть столбец с помощью разделителя сетки? Отсюда мое текущее затруднительное положение. Любые предложения будут высоко оценены.
Заранее спасибо
Комментарии:
1. пожалуйста, поделитесь своей областью сетки только для xaml
Ответ №1:
Дайте вашему ColumnDefinition имя с помощью атрибута Name, например:
<ColumnDefinition Width="100" Name="FooColumn"/>
Затем вы можете назначить ему новую ширину в коде, когда захотите:
FooColumn.Width = new GridLength(1);
(редактировать: следовало бы использовать одно и то же имя в обоих местах … упс.. вы поняли идею, хотя)
Ответ №2:
Try this
<Grid x:Name="LayoutRoot" Background="White" ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<sdk:GridSplitter />
</Grid>
LayoutRoot.ColumnDefinitions.First().Width = new GridLength();
Комментарии:
1. Спасибо за ваши предложения. При использовании . Сначала кажется, что переопределяются оба столбца, и я «теряю» содержимое во втором столбце?