Silverlight栅格:左侧应拉伸,右侧已定义
我正在尝试为listitem模板创建一个网格。应该有三列,第二列和第三列的宽度都应该是50px,第一列应该拉伸,以填充剩余的空白空间 以下是我目前的代码:Silverlight栅格:左侧应拉伸,右侧已定义,silverlight,xaml,grid,Silverlight,Xaml,Grid,我正在尝试为listitem模板创建一个网格。应该有三列,第二列和第三列的宽度都应该是50px,第一列应该拉伸,以填充剩余的空白空间 以下是我目前的代码: <DataTemplate x:key="NoteItemTemplate"> <Grid Background="{Binding ColorBrush}" Height="50" Margin="5,5,5,5" HorizontalAlignment="Stretch"> <Gr
<DataTemplate x:key="NoteItemTemplate">
<Grid Background="{Binding ColorBrush}"
Height="50"
Margin="5,5,5,5"
HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
</Grid>
</DataTemplate>
<!-- far away, in an another file.. -->
<ListBox
x:Name="NotesListBox"
VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Stretch"
VerticalAlignment="Top"
ItemsSource="{Binding NotesList}"
ItemTemplate="{StaticResource NoteItemTemplate}"
Background="AliceBlue" />
如果是1*或*,则没有区别
但我似乎找不到答案。如何操作?您提到要将上述网格定义用作ListBoxItem的数据模板。默认情况下,ListBoxItem的内容不会拉伸,因此在本例中,您将只看到两列 因此,我认为您需要指定,您希望拉伸ListBoxItem的内容。这样做:
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
将1*
更改为*
应该可以做到这一点。@Slugster:1*和*是否有在数据模板中写入的方法?或者它必须在列表框中吗?不,DataTemplate不是正确的位置,不可能这样做。您可以在中心资源字典中定义ItemContainerStyle的样式,并将其重新用于列表框