如何将Textblock大小设置为始终适合绑定数据?

时间:2016-03-14 14:38:50

标签: c# wpf xaml textblock

我正在开发WPF GUI。我有很多观点,每个观点有几个TextBlocks,我试图摆脱烦人的设计(我知道红色很烦人,但事实并非如此)所以我将解释几个示例文本块,这里是它的XAML:

有时会有数据“绑定背后”,有时它只是一个单词,有时它是几个单词,有时根本就没有数据。无论数据是什么,我如何将它们彼此放在一起?

<TextBlock x:Name="sessionNameTextBlock" Margin="0,0,1123,9.8" Text="{Binding CurrentSessionName}" VerticalAlignment="Bottom" FontSize="48" TouchUp="sessionNameTextBlock_TouchUp" MouseUp="sessionNameTextBlock_MouseUp" Height="57" Background="#FFE81616"/>
<Border x:Name="SessionEditorButton" BorderBrush="Black" BorderThickness="0" Margin="48,0,1027,9.8" MouseUp="SessionEditorButton_MouseUp" TouchUp="SessionEditorButton_TouchUp" Background="#FFF91515" Height="57" VerticalAlignment="Bottom">
   <Image x:Name="image" Margin="10,10,9.8,10.6" Source="/EZ3D;component/Resources/ez3d_edit.png"/>
</Border>
<TextBlock x:Name="sessionCommentsTextBlock" Margin="144,0,975,9.8" Text="{Binding CurrentSessionComments}" MouseUp="sessionCommentsTextBlock_MouseUp" TouchUp="sessionCommentsTextBlock_TouchUp" FontSize="18.667" Background="#FFF41515" Height="57" VerticalAlignment="Bottom"/>

目前的状态如下: enter image description here

或者如果我手动调整大小: enter image description here

我想要的是:

-------------愿景----------------

在执行中,内容为'S'和'E',然后执行两个内容为“Whatever ... etc”和“Comments ... etc”所以TextBlock将调整大小取决于其内容。 enter image description here

1 个答案:

答案 0 :(得分:0)

因此,以下XAML的行为与您为我请求的行为相同。

<StackPanel Orientation="Horizontal">
    <TextBlock x:Name="tb1" Text="Test" />
    <Border x:Name="SessionEditorButton" BorderBrush="Black" BorderThickness="0" Background="#FFF91515" Height="57" VerticalAlignment="Bottom">
        <Image x:Name="image" Margin="10,10,9.8,10.6" />
    </Border>
    <TextBlock x:Name="tb2" Text="Test 2"/>
</StackPanel>

当然,这是一个非常人为的例子,但它归结为TextBlock 自动调整自己的大小如果他们的容器有空间允许它。在这种情况下,我的StackPanel填充窗口,因此TB有足够的空间来调整大小。您可能需要查看容器层次结构以确定哪个容器与您的文本块有关。