Set MaxHeight of textblock embedded within data template of ListBox

孤街浪徒 提交于 2019-12-25 01:59:37

问题


how do i access a textblock inside a data template, within a ListBox & set the textblock's 'MaxHeight'?

Code-behind as well?

I have @ 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"))
    }      
}    

回答1:


There are several tutorials on the internet about how to access a control inside data template. You can google it you will find pages like this and this. Once you have located the control you want, you can play with it in any way you want and you can apply any change like Maximum Height

Update: See this, it is the simplest possible way to access a control inside DataTemplate



来源:https://stackoverflow.com/questions/6881863/set-maxheight-of-textblock-embedded-within-data-template-of-listbox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!