GridSplitter 从右侧调整大小 - 奇怪的行为 [英] GridSplitter to Resize from Right - Odd Behaviour

查看:17
本文介绍了GridSplitter 从右侧调整大小 - 奇怪的行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用 Kaxaml,从左侧调整大小按预期工作.

<页面xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><网格><Grid Horizo​​ntalAlignment="左"><Grid.ColumnDefinitions><ColumnDefinition Width="Auto"></ColumnDefinition><ColumnDefinition Width="Auto"></ColumnDefinition><ColumnDefinition Width="Auto"></ColumnDefinition></Grid.ColumnDefinitions><GridSplitter Grid.Column="1" Width="5" Background="DarkGray" Horizo​​ntalAlignment="Right"></GridSplitter><矩形 Grid.Column="0" 填充="红色" 高度="100"/><矩形 Grid.Column="1" 填充="黄色" 高度="100"/><矩形Grid.Column="2" Fill="Green" Height="100"/></网格></网格></页面>

但是,在右侧尝试类似的操作时,它的行为却大不相同.

<页面xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><网格><Grid Horizo​​ntalAlignment="右"><Grid.ColumnDefinitions><ColumnDefinition Width="Auto"></ColumnDefinition><ColumnDefinition Width="Auto"></ColumnDefinition><ColumnDefinition Width="Auto"></ColumnDefinition></Grid.ColumnDefinitions><GridSplitter Grid.Column="1" Width="5" Background="DarkGray" Horizo​​ntalAlignment="Left"></GridSplitter><矩形 Grid.Column="0" 填充="红色" 高度="100"/><矩形 Grid.Column="1" 填充="黄色" 高度="100"/><矩形Grid.Column="2" Fill="Green" Height="100"/></网格></网格></页面>

奇怪的是,只有向右拖动才能工作,而且大小几乎以相反的方式发生.

解决方案

将第一列的Width="*"改为Width="Auto".p>

Using Kaxaml, resizing from the left works as expected.

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>  

  <Grid HorizontalAlignment="Left">
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto"></ColumnDefinition>
      <ColumnDefinition Width="Auto"></ColumnDefinition>
      <ColumnDefinition Width="Auto"></ColumnDefinition>
    </Grid.ColumnDefinitions>


    <GridSplitter Grid.Column="1" Width="5" Background="DarkGray" HorizontalAlignment="Right"></GridSplitter>

    <Rectangle Grid.Column="0" Fill="Red" Height="100"/>
    <Rectangle Grid.Column="1" Fill="Yellow" Height="100"/>
    <Rectangle Grid.Column="2" Fill="Green" Height="100"/>
  </Grid>

  </Grid>
</Page>

However when trying something similar on the right it behaves very differently.

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>  

  <Grid HorizontalAlignment="Right">
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto"></ColumnDefinition>
      <ColumnDefinition Width="Auto"></ColumnDefinition>
      <ColumnDefinition Width="Auto"></ColumnDefinition>
    </Grid.ColumnDefinitions>


    <GridSplitter Grid.Column="1"  Width="5" Background="DarkGray" HorizontalAlignment="Left"></GridSplitter>

    <Rectangle Grid.Column="0" Fill="Red" Height="100"/>
    <Rectangle Grid.Column="1" Fill="Yellow" Height="100"/>
    <Rectangle Grid.Column="2" Fill="Green" Height="100"/>
  </Grid>

  </Grid>
</Page>

Oddly only dragging right works and the size happens in an almost inverse manner.

解决方案

For the first column change Width="*" to Width="Auto".

这篇关于GridSplitter 从右侧调整大小 - 奇怪的行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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