У меня много XAML, который находится в полном беспорядке, и это обычно из-за одной вещи.GRID
, Grid.Column
и Grid.Row
сумасшествие !!
Теперь есть несколько распространенных способов создания списков с метками в XAML:.
с помощью
Преимущества: Автоматическое изменение ширины столбцов и строк
Недостатки: Нет простого способа вставить строки / столбцы в VS или Blend [STILL !!], возможно, грязный XAML, если вы не будете осторожны, тонны прикрепленных свойств, поля должны быть установлены для каждого элемента управления, сетка предназначена для всего и определенно не предназначена для этой цели!
Да, я знаю, что естьудобные инструменты для вставки строк и столбцов без необходимости перенумерации всех полей, например XAML Powertools (см. video ).Но это все еще неуклюже, на мой взгляд (несмотря на то, что спасает жизнь в то же время.)это то, чем я всегда пользуюсь)
Преимущества: Очень легко переупорядочивать товары, относительно чистый XAML
Недостатки: Нужно знать ширинустолбец метки и установить его на каждом элементе, все равно нужно возиться с полями
<StackPanel>
<!-- Name -->
<StackPanel Orientation="Horizontal">
<TextBlock Text="Name:" Width="60" VerticalAlignment="Center" TextAlignment="Right"/>
<TextBox Name="txtName" Width="100" Margin="5,5,0,0"/>
</StackPanel>
<!-- Address -->
<StackPanel Orientation="Horizontal">
<TextBlock Text="Address:" Width="60" VerticalAlignment="Center" TextAlignment="Right"/>
<TextBox Name="txtAddress" Grid.Row="1" Grid.Column="1" Width="100" Margin="5,5,0,0"/>
</StackPanel>
</StackPanel>
с DataForm
Преимущества: Обрабатывает редактирование, различные виды для разных состояний редактирования и т. Д.
Недостатки: Все еще в предварительном просмотре полоса качества, слишком большая для большей части времени, вам нужен простой список элементов
<dataform:DataForm x:Name="dataForm" Width="350" ItemsSource="{Binding}" HorizontalAlignment="Left" MaxWidth="500" Margin="4" Grid.Column="1"/>
См. http://www.silverlightshow.net/items/Creating-Rich-Data-Forms-in-Silverlight-3-Customization.aspx
Что я хочу!
Мне бы хотелось, чтобы какая-то сетка работала в Blendно позволяет мне легко задавать текст метки с помощью прикрепленного свойства - или каков «лучший» способ XAML.Было бы здорово учесть несколько столбцов, но, вероятно, намного сложнее.
Преимущества: Легко переупорядочивать элементы, очищать XAML, устанавливать 'cellpadding' в одном месте
Недостатки: Пока нет!
<LabelledGrid CellPadding="5" LabelStyle="{StaticResource labelStyle}>
<TextBox LabelledGrid.Label="Name" Name="txtName" />
<TextBox LabelledGrid.Label="Address" Name="txtAddress" />
</LabelledGrid>
или, может быть,
<LabelledGrid CellPadding="5" LabelStyle="{StaticResource labelStyle}>
<LabelledGrid.GridItem>
<LabelledGrid.Label>
Name:
</LabelledGrid.Label>
<TextBox Name="txtName" />
</LabelledGrid.GridItem>
<LabelledGrid.GridItem>
<LabelledGrid.Label>
Address:
</LabelledGrid.Label>
<TextBox Name="txtAddress" />
</LabelledGrid.GridItem>
</LabelledGrid>
Существуют ли какие-либо элементы управления, например, как я описываю LabelledGrid
- или как мне создать