繁体   English   中英

如何阻止多行文本框移动GridSplitter?

[英]How to stop a multiline textbox from moving the GridSplitter?

重现该问题:(例如)向一个字母发送垃圾邮件,直到您开始点击右侧的拆分网格区域为止。 网格分割器移动到右侧最小宽度限制之外。

预期的行为:在文本框中键入(键入/粘贴)时超过宽度限制不会移动网格分割器,而是会立即激活滚动条。

条件

  • TextBox必须水平和垂直滚动
  • TextBox和ScrollViewer必须保持动态可调整大小-没有最大宽度限制。 这是因为在实际的应用程序中,用户可以调整应用程序的大小,从而导致文本框的大小得以调整。

码:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="10000*" MinWidth="25"/>
        <ColumnDefinition Width="8" />
        <ColumnDefinition Width="*" MinWidth="25" />
    </Grid.ColumnDefinitions>
    <ScrollViewer HorizontalScrollBarVisibility="Visible">
        <TextBox AcceptsReturn="True" AcceptsTab="True" TextWrapping="Wrap" />
    </ScrollViewer>
    <GridSplitter Background="Black"
                  BorderBrush="White"
                  BorderThickness="1,0,0,0"
                  ResizeDirection="Columns"
                  HorizontalAlignment="Stretch"
                  VerticalAlignment="Stretch" Grid.Column="1" />
    <Grid Background="Red" Grid.Column="2" />
</Grid>

多数民众赞成在引起问题

<ColumnDefinition Width="10000*" MinWidth="25"/>

请为栏定义使用百分比值:

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width=".75*" MinWidth="25"/>
        <ColumnDefinition Width="8" />
        <ColumnDefinition Width=".25*" MinWidth="25" />
    </Grid.ColumnDefinitions>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM