2013-10-17 47 views
0

我正试图在下面实现。我已经创建了一个控件,如下所示,我最初在文本块中显示受限测试,但是当用户单击readmore按钮时,我必须根据文本块内的文本扩展控件大小。请参阅下图。C#WP8根据文本动态增加控件大小

enter image description here

如何做到这一点任何帮助吗?此控件将添加到另一个用户控件中,该控件是此控件的集合。

回答

1

如果您通过某种方式限制文本,然后添加更多文本,您可以使用任何面板控件来完成此操作。不要给面板(或它的父母)一个宽度或高度属性,以便它可以增长。下面是一个使用网格

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <TextBlock Text="Event"/> 
    <TextBlock Text="{Binding EventSummary}" Grid.Row="1" Visibility="{Binding SummaryVis}"/> 
    <TextBlock Text="{Binding EventDescription}" Grid.Row="1" Visibility="{Binding DescriptionVis}" /> 
    <HyperlinkButton HorizontalAlignment="Right" Content="read more" Command="{Binding ReadMoreCommand}" /> 
    <!-- Buttons --> 
    <StackPanel Orientation="Horizontal" /> 
</Grid> 

在ReadMoreCommand一个例子,你会改变两个的TextBlocks

private void ReadMore(object val) 
{ 
    DescriptionVis = Visibility.Visible; 
    SummaryVis = Visibility.Collapsed; 
} 
+0

的知名度会自动提高用户控件的大小。我怀疑,因为当我在另一个控件中添加此用户控件时,我正在设置usercontrol的高度和宽度。这将如何得到更新?不知何故,我需要一种机制来计算用户控制的新高度? – sunder

+0

正如我所说,你不应该在你的应用程序中设置高度。你应该允许在飞行中确定高度 –

+0

是得到它,并使其工作。那很简单。 – sunder