WPF网格百分比宽度不适用于宽度较大的元素

时间:2017-02-06 21:16:23

标签: c# wpf

<Window x:Class="WPFTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WPFTest"
        mc:Ignorable="d"
        SizeToContent="WidthAndHeight">
    <StackPanel>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="3*"/>
                <ColumnDefinition Width="7*"/>
            </Grid.ColumnDefinitions>

            <TextBlock Text="123"/>
            <TextBlock Grid.Column="1" 
                       Background="LightGray"
                       Text="long long long long long long long long long long long long long long long long "/>
        </Grid>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="3*"/>
                <ColumnDefinition Width="7*"/>
            </Grid.ColumnDefinitions>

            <TextBlock Text="123"/>
            <TextBlock Grid.Column="1" Background="LightYellow" Text="short"/>
        </Grid>
    </StackPanel>
</Window>

简单示例,窗口和窗口宽度相同30%/ 70%的两个网格设置为SizeToContent宽度和高度。

预期的行为应该是窗口自动调整为长字符串占据宽度的70%的点。

但相反,这就是发生的事情 enter image description here

当我点击窗口的边框时(触发调整大小事件) enter image description here

我做错了什么以及如何解决?

P.S。第二行只是显示实际的30%/ 70%比率,我的主要目标是让窗口自动调整大小以适应具有正确比率的长字符串

编辑:即使我进行文本换行/文本修剪,我也无法获得正确的比例

<TextBlock Grid.Column="1" 
           Background="LightGray"
           TextWrapping="WrapWithOverflow"
           TextTrimming="CharacterEllipsis"
           Text="long long long long long long long long long long long long long long long long "/>

窗口与之前相同

0 个答案:

没有答案