如何引用MaxWidth="??" TextBlock 到所有者实际宽度?

发布于 2025-01-07 11:18:49 字数 1202 浏览 2 评论 0 原文

如何将TextBlockMaxWidth="??"引用到stpMessage ActualWidth

<StackPanel Name="stpMessage" Orientation="Horizontal"  Margin="0,5,0,0">
                    <Grid >
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="2*" />
                            <ColumnDefinition Width="2*" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Margin="0,0,0,0" Foreground="Blue" TextWrapping="Wrap">@ToUserName</TextBlock>
                        <StackPanel Grid.Column="1">
                            <TextBlock Margin="5,0,0,0" Text="{Binding Path=Text}" MinHeight="20"  MinWidth="200"  HorizontalAlignment="Stretch" MaxWidth="1000"
                                       VerticalAlignment="Stretch" TextWrapping="WrapWithOverflow">START skf skdjf skdj hfskdjf ksdjhf ksjdhf ksjhf kjsf kjshf kjshkjfhsdf kjsfdkj hskdfj hskdjf hskdjf skjhfksjfks END</TextBlock>
                        </StackPanel>    
                    </Grid>
                </StackPanel>

How to refer MaxWidth="??" of TextBlock to stpMessage ActualWidth?

<StackPanel Name="stpMessage" Orientation="Horizontal"  Margin="0,5,0,0">
                    <Grid >
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="2*" />
                            <ColumnDefinition Width="2*" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Margin="0,0,0,0" Foreground="Blue" TextWrapping="Wrap">@ToUserName</TextBlock>
                        <StackPanel Grid.Column="1">
                            <TextBlock Margin="5,0,0,0" Text="{Binding Path=Text}" MinHeight="20"  MinWidth="200"  HorizontalAlignment="Stretch" MaxWidth="1000"
                                       VerticalAlignment="Stretch" TextWrapping="WrapWithOverflow">START skf skdjf skdj hfskdjf ksdjhf ksjdhf ksjhf kjsf kjshf kjshkjfhsdf kjsfdkj hskdfj hskdjf hskdjf skjhfksjfks END</TextBlock>
                        </StackPanel>    
                    </Grid>
                </StackPanel>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

横笛休吹塞上声 2025-01-14 11:18:49

这样做的问题是 StackPanel 不限制其子级的大小,因此会根据子级的需要而增长 将

您的 StackPanel 更改为限制其子级大小的控件它是子级,例如 Grid(或将其包装在另一个控件中),然后使用 ElementName 绑定绑定到该控件的 ActualWidth 属性

<Grid Name="stpMessage" ... />
    ...
    <TextBlock MaxWidth="{Binding ElementName=stpMessage, Path=ActualWidth}" ... />
    ...
</Grid>

The problem with this is that StackPanels do not limit the size of their children, so will grow as much as their children need

Change your StackPanel to a control that limits the size of it's children, like a Grid (or wrap it in another control) and then use an ElementName binding to bind to the ActualWidth property of that control

<Grid Name="stpMessage" ... />
    ...
    <TextBlock MaxWidth="{Binding ElementName=stpMessage, Path=ActualWidth}" ... />
    ...
</Grid>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文