从代码后面的Grid.Resources获取控件属性
在开始时,theres xaml代码:
<Grid.Resources>
<DataTemplate x:Name="dataTemp" x:Key="dtKey">
<WrapPanel Orientation="Horizontal" Name="mainWP">
<TextBlock Name="codeTB" FontSize="18" Width="200" Text="{Binding barcode}"></TextBlock>
(...)
</WrapPanel>
</DataTemplate>
</Grid.Resources>
和数据模板列表视图:
<ListView Name="testLV" Grid.Row="0" ItemTemplate="{StaticResource ResourceKey=dtKey}" >
</ListView>
所以在后面的代码中,我想将TextBlock宽度更改为this.width / 5(因为宽度可能与另一台PC不同),但是因为它是DataTemplate,所以我无法访问此控件。 我也试过宽度=“{绑定路径= ActualWidth,ElementName = grid0}”,但作为实际宽度,我需要像ActualWidth / 5,这不工作
谢谢
当满足所有子元素的DesiredWidth
(换句话说,当网格的大小足够大以适合具有相等空间的所有列)时,使用具有5列且每个具有Width="0.2*"
的Grid
将工作得很好。 如果它不能这样做,那么布局将以一种方式修剪它可以使用的元素,并为需要它的其他列提供额外的空间,从而覆盖该过程中的Width="0.2*"
为了满足您的要求,您需要将5列平分,只需使用UniformGrid
。 这几乎不关心任何上述的事情。
所以说这样的话:
<ListView Name="paragonLV" HorizontalContentAlignment="Stretch">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Padding"
Value="0" />
<Setter Property="BorderThickness"
Value="0" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<UniformGrid MaxWidth="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ScrollViewer}},
Path=ActualWidth}"
Columns="5">
<UniformGrid.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextTrimming"
Value="CharacterEllipsis" />
<Setter Property="FontSize"
Value="18" />
<Setter Property="HorizontalAlignment"
Value="Stretch" />
</Style>
</UniformGrid.Resources>
<TextBlock Text="{Binding barCode}" />
<TextBlock Text="{Binding nazwa}" />
<TextBlock Text="{Binding jm}" />
<TextBlock Text="{Binding ilosc}" />
<TextBlock Text="{Binding cena}" />
</UniformGrid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
使用Grid.Column定义格式化您的网格,或者使用Ivaluconverter类让我们看看价值转换器的开发
转换参数将您的计算参数,您知道如何构建值转换器类
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
//value is grid actual width
// parameter = 5 is your calculated value
return value / parameter;
}
链接地址: http://www.djcxy.com/p/44599.html
上一篇: Get control properties from Grid.Resources in code behind
下一篇: silverlight binding