如何引用MaxWidth ="??" TextBlock转换为Owner ActualWidth? [英] How to refer MaxWidth="??" of TextBlock to Owner ActualWidth?

查看:88
本文介绍了如何引用MaxWidth ="??" TextBlock转换为Owner ActualWidth?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将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>

推荐答案

问题是StackPanels不会限制孩子的大小,因此会根据孩子的需要增长

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

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

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>

这篇关于如何引用MaxWidth ="??" TextBlock转换为Owner ActualWidth?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆