【问题标题】:WPF: TextBlock with Wrapped text should inherit widthWPF:带有换行文本的 TextBlock 应继承宽度
【发布时间】:2011-07-06 00:23:48
【问题描述】:

我有以下 XAML:

            <StackPanel>
                <StackPanel Orientation="Horizontal">
                    <Border Name="B1" Width="Auto">
                        <DataGrid />
                    </Border>
                    <Border Name="B2" Width="Auto">
                        <DataGrid />
                    </Border>
                </StackPanel>
                <Border Name="B3" Width="Auto">
                    <TextBlock TextWrapping="Wrap"
                               Text="{Binding}"/>
                </Border>
            </StackPanel>

基本上,边界 B1 和 B2 并排在上面,而 B3 在它们下面。 B1 和 B2 根据内容中的内容动态更改其宽度。我希望 B3 的宽度是 B1 和 B2 的宽度之和,并在 TextBlock 中自动换行。

上面的 XAML 导致 TextBlock 中的文本不换行,这导致 B3 比 B1+B2 宽得多。

我希望 B3.width 继承自主 StackPanel 的宽度,该宽度将由 B1.width+B2.width 设置,如果可能的话,我想在没有代码的情况下这样做。

有什么想法吗?

【问题讨论】:

    标签: wpf xaml width


    【解决方案1】:
    <StackPanel x:Name="stk">
        <StackPanel Orientation="Horizontal" x:Name="stk1" HorizontalAlignment="Left" >
            <Border Name="B1"
                    Width="Auto">
                <ListBox Width="200" Height="200"></ListBox>
            </Border >
            <Border Name="B2"
                    Width="Auto">
                <ListBox Width="200"></ListBox>
            </Border>
        </StackPanel>
        <Border Name="B3"
                Width="{Binding Path=ActualWidth,ElementName=stk1}" HorizontalAlignment="Left">
            <TextBlock TextWrapping="NoWrap"
                       Text="testddddddddddddddddddddddddddddddddddd" />
        </Border>
    </StackPanel>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      相关资源
      最近更新 更多