2013-10-17 76 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