中的控件的最简单的方法。
如何在ListBox中访问数据模板中的文本块?设置文本块的'MaxHeight'?
代码隐藏?
我有@ Page.xaml:
<ListBox ItemsSource="{Binding}" DataContext="" x:Name="NewsList" SelectionChanged="NewsList_SelectionChanged" SelectionMode="Single" Width="580" Height="360" VerticalAlignment="Top" HorizontalAlignment="Center" >
<ListBox.ItemTemplate>
<DataTemplate>
<!-- table within each ListBox item-->
<!-- control horizontal scrollbar w width @ following line-->
<Grid Height="110" Width="540">
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="*" />
<RowDefinition Height="15" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="82" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border CornerRadius="2" BorderThickness="2" BorderBrush="Gray" Height="82" Width="82" Background="LemonChiffon" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.RowSpan="3" Grid.Column="0" >
<Image Source="{Binding NewsThumbnail}" Style="{StaticResource ThumbNailPreview}" />
</Border>
<TextBlock x:Name="NewsTitle" FontFamily="Arial" FontWeight="bold" TextDecorations="Underline" Text="{Binding Title}" Style="{StaticResource TitleText}" Grid.Row="0" Grid.Column="1"/>
<!-- i wish to set the 'maxheight' of the following textblock instead of a fixed value of 65 -->
<TextBlock x:Name="StaffNewsBody" FontFamily="Arial" Text="{Binding NewsBody}" Style="{StaticResource DescriptionBlock}" Grid.Row="1" Grid.Column="1" MaxHeight="65" />
@ Page.xaml.cs:
//variable values taken from App.xaml.cs's method 'Application_Startup()'
public Page(string _setArticles, string _setLength)
{
InitializeComponent();
if (!string.IsNullOrEmpty(_setLength))
{
// if (_setLength.Contains("_3"))
// if (_setLength.Contains("_4"))
// if (_setLength.Contains("_5"))
}
}
网上有一些关于如何在数据模板中访问控件的教程。你可以谷歌一下,你会找到这样和这样的页面。一旦你找到了你想要的控件,你可以用任何你想要的方式来操作它,你可以应用任何更改,比如最大高度
更新:这是访问DataTemplate