나는 완전한 혼란에 빠져있는 많은 XAML을 가지고 있는데, 이는 일반적으로 한 가지 때문입니다. GRID
, Grid.Column
및 Grid.Row
광란 !!Silverlight/WPF에서 레이블이있는 컨트롤 목록을 만들려면 어떤 옵션이 있습니까?
이제 XAML에서 레이블이있는 목록을 만들 수있는 몇 가지 일반적인 방법이 있습니다. < 그리드 >
장점
: 자동 크기 조정 열 및 행의 폭이
단점 : 행/열을 삽입하는 쉬운 방법 중 하나 VS 또는 [정지!] 혼합, 잠재적으로 지저분한 XAML, 조심하지 않으면 첨부 된 속성의 톤, 여백을 각 컨트롤에 설정해야하며 그리드는 모든 것을 의미하며이 목적으로 설계되지 않았습니다!
예 XAML Powertools (video 참조)과 같이 모든 필드를 수동으로 번호를 다시 매기 지 않고 행과 열을 삽입하는 편리한 도구가 있음을 알고 있습니다. 하지만 내 생각에 아직 서투른 (동시에 생명의 은인 임에도 불구하고.) 중첩 < StackPanel의 > 컨트롤
와
<Grid Grid.Row="6" Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- Name -->
<TextBlock Text="Name:" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right"/>
<TextBox Name="txtName" Grid.Row="0" Grid.Column="1" Width="100" Margin="5,5,0,0"/>
<!-- Address -->
<TextBlock Text="Address:" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Right"/>
<TextBox Name="txtAddress" Grid.Row="1" Grid.Column="1" Width="100" Margin="5,5,0,0"/>
</Grid>
(이것은 내가 항상 끝날 것 같다 무엇인가 사용)
장점 : 매우 쉽게 항목을 재정렬하기 쉽고 비교적 깨끗함 XAML
단점 : 레이블 컬럼의 폭을 알고 각 항목에 설정할 필요는 여전히 마진 DATAFORM
장점
<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>
으로 엉망이 필요합니다 편집, 다른 편집 상태에 대한 다른보기 등을 처리합니다.
단점 : 여전히 preview 품질 금지 D, 당신이 항목
<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
을 설명하고있어 방법과 같은 기존의 컨트롤이 있습니까 - 또는 내가 이것을 만드는 방법에 대해 어떻게 가야하나요?
장점을 내 목록/각 항목에 대한 단점을 편집 주시기 바랍니다 -이 질문에 속는을보고 싶어요. 방금 –