标签: gridsplitter

WPF GridSplitter分割/调整两个ListBox的大小?

我有一个有7行的网格.行0是一组2个按钮行1是列表框的对象行2是一组3个按钮行3是一组2个按钮行4是我的GridSplitter所在的行第5行是一组2个按钮第6行是一个ListBox对象

我希望GridSplitter上下滑动,调整两个ListBox中的每一个的大小.我现在已经把它放在自己的行中了,当我滑动它时,它会在它到达第4行(它自己的行)的顶部时冻结,并且只是在它向下扩展第4行时创建空白区域.

我只需要拆分器上下滑动并调整每个ListBox的大小.目前,如果ListBoxes的视图太大,那么它们会有垂直滚动条.

有任何想法吗?

wpf scroll listbox gridsplitter

3
推荐指数
1
解决办法
8102
查看次数

如何以编程方式调整PropertyGrid控件的水平分隔符?

我在我的C#项目中使用.NET PropertyGrid控件.

当包含网格的表单加载时,水平拆分器(将"设置"与"描述"分开)处于默认位置.如何在C#中以编程方式更改分割器的位置?

.net c# propertygrid gridsplitter visual-studio

3
推荐指数
1
解决办法
3582
查看次数

WPF GridSplitter

使用WPF GridSplitter时出现奇怪的行为。

我将适当的Horizo​​ntalAlignment属性设置为可拉伸,当我调整它们的大小时,GridSplitter会跳来跳去,有时会回到其原始位置,或者只是在拖动它们时跳来跳去.....

是否有其他人看到或知道是什么原因造成的?

谢谢

这是XAML

<GridSplitter x:Name="grdTreeSplitter" Grid.Row ="1" 
     BorderBrush="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" 
     BorderThickness="1"
     HorizontalAlignment="Stretch" Panel.ZIndex="0" 
     ResizeBehavior="PreviousAndNext" ResizeDirection="Rows"
     SnapsToDevicePixels="False" ShowsPreview="False" UseLayoutRounding="False"
     DragIncrement="1"
     DragDelta="grdSideExplorerSplitter_DragDelta">
  <GridSplitter.Visibility>
    <MultiBinding 
      ......
    </MultiBinding>
  </GridSplitter.Visibility>
</GridSplitter>
Run Code Online (Sandbox Code Playgroud)

wpf gridsplitter

2
推荐指数
1
解决办法
3349
查看次数

以编程方式设置网格中列的宽度

是否可以在Silverlight中为Grid设置列的宽度?我有一个有两列的网格(不是网格视图).ColumnA和ColumnB.我想要完成的是当用户点击ColumnA中的按钮时,ColumnA的宽度设置为.01.然后ColumnB应扩展网格的整个宽度以填充剩余区域.类似于如何固定或解锁底座面板?

这是最好的方法还是我应该回到dockpanel并让SL处理它?我更喜欢自己管理它而不是使用RAD控件,因为我觉得它对于这么小而且看似简单的任务来说有点臃肿.

我的另一个想法是使用gridsplitter但我不确定如何使用gridsplitter以编程方式折叠或扩展列?因此,我目前的困境.任何建议将不胜感激.

提前致谢

c# silverlight gridsplitter

2
推荐指数
1
解决办法
6998
查看次数

与scrollviewer和minWidth结合使用时,gridsplitter的行为不符合预期

  • 我有一个网格作为背景容器
  • 此网格包含一个scrollviewer,因此当我调整窗口向上的大小时,内容随之扩展,但是当我调整窗口向下的大小时,当我到达sv内容的minWidth时,滚动条将出现在scrollviewer上
  • 此scrollviewer包含具有两列的网格
  • 此网格在每一列中包含一个scrollviewer,每个滚动视图又包含一个网格。
  • 我在第一列上有一个网格拆分器,以便可以调整列的大小

免责声明:我知道这不是组织此布局的最佳方法,但这实际上是我发现的最简单的表示形式,它再现了我在更为精细的布局中遇到的问题,因此请不要提供会重新组织图层的解决方案

这是xaml:

<Window x:Class="Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Text Project">

    <!--background grid-->
    <Grid>

        <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">

            <!--two columns layout-->
            <Grid MinWidth="600">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>

                <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
                    <Grid MinWidth="200" Background="Red"/>
                </ScrollViewer>

                <GridSplitter HorizontalAlignment="Right" VerticalAlignment="Stretch" Width="6"/>

                <ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
                    <Grid MinWidth="200" Background="Blue"/>
                </ScrollViewer>
            </Grid>

        </ScrollViewer>

    </Grid>

</Window>
Run Code Online (Sandbox Code Playgroud)

目标如下:-如果我将窗口调大,一切都会缩放-如果我调小,当我达到minWidth时,最顶部的滚动查看器上的scroolbar出现,并且其内容停止缩小。(这部分工作正常)-不管最顶部的scrollviewer的大小如何,我都可以使用gridsplitter调整两列的大小-当我达到一列的最小宽度时,滚动条将出现在该列的scrollviewer上,并且其内容停止缩小

问题:第二部分永远不会发生。我得到的是可以调整大小,直到达到两个子网格的minWidth之一,然后网格分割器停止移动,无法进一步缩小并且滚动条永远不会出现。

我注意到,如果删除最上面的网格及其关联的scrollviewer,它将按预期工作:

<Window x:Class="Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Text Project">

            <!--two columns layout-->
            <Grid MinWidth="600">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>

                <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
                    <Grid MinWidth="200" Background="Red"/> …
Run Code Online (Sandbox Code Playgroud)

wpf scrollviewer gridsplitter

2
推荐指数
1
解决办法
1969
查看次数

如何让 WPF GridSplitter 控件在 ItemsControl 内工作?

谁能向我解释为什么下面的简单示例有效:

<ItemsControl x:Class="UserControl1"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition Height="5" />
            <RowDefinition />
        </Grid.RowDefinitions>

        <Grid Background="Yellow" />

        <GridSplitter Grid.Row="1"
                      HorizontalAlignment="Stretch"
                      VerticalAlignment="Stretch" />

        <Grid Grid.Row="2"
              Background="Orange" />
    </Grid>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

...但是当我将 ItemsPanelTemplate 设置为主模板时,它不会:

<ItemsControl x:Class="UserControl1"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition Height="5" />
                    <RowDefinition />
                </Grid.RowDefinitions>
            </Grid>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    <Grid Background="Yellow" />

    <GridSplitter Grid.Row="1"
                  HorizontalAlignment="Stretch" 
                  VerticalAlignment="Stretch" />

    <Grid Grid.Row="2" Background="Orange" />
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

它们都在橙色框的顶部显示一个黄色框,它们之间有一个水平分隔线。在第一个示例中,分割器工作正常,允许您调整两个区域的大小。在第二个示例中(生成几乎相同的视觉树),分割器被锁定,它不允许我拖动它来调整两个区域的大小!

这是我想要实现的目标的一个非常简单的示例 - 但它演示了我在实际应用程序中遇到的问题。我一定错过了一些东西,是什么阻止了分离器的功能?所有三个子项都添加到 ItemsPanelTemplate 网格中,确定......

任何解释或修复将不胜感激!

问候,戴夫

itemscontrol gridsplitter

1
推荐指数
1
解决办法
1531
查看次数

gridsplitter wpf边框的虚线

有没有办法让我的边界而不是围绕它的实线变成虚线?我只希望它出现在左侧和右侧,顶部和底部应该没有任何东西.

<Grid Grid.IsSharedSizeScope="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition SharedSizeGroup="A" Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition SharedSizeGroup="A" Width="Auto"/>
    </Grid.ColumnDefinitions>

    <Label Content="Shnarf Left" Background="Azure" Grid.Column="0"/>
    <TextBlock Text="Shnarf Middle" Background="Lavender" Grid.Column="2" TextWrapping="Wrap"/>
    <Label Content="Shnarf Right" Background="Moccasin" Grid.Column="4"/>

    <GridSplitter Grid.Column="1" Width="8"
                  HorizontalAlignment="Center" VerticalAlignment="Stretch" ShowsPreview="True" BorderBrush="Black" BorderThickness="1,0,1,0"/>
    <GridSplitter Grid.Column="3" Width="8" Background="DarkSlateBlue"
                  HorizontalAlignment="Center" VerticalAlignment="Stretch" ShowsPreview="True"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

c# wpf gridsplitter

0
推荐指数
1
解决办法
770
查看次数