我是WPF和C#的新手,我正在尝试帮助一些GUI工作。我们基本上有3个部分,一个LHS(左手边)[第1节],一个有顶部和底部的RHS [第2节和第3节]。看起来像这样
1 | 2
1 | -
1 | 3
他们希望通过点击按钮缩小每个部分。目前|和 - 是间隔项,可以拖动(编辑:这是使用他们不喜欢的网格切割器完成的)。我做了一点研究,发现有扩展物品和手风琴物品。我不知道是否可以用于这种情况,什么是最不麻烦的。在尝试每一个时,我会想到一些关于控件的其他问题,因为我不熟悉它们。
扩展器: 通过缩小第1部分,是否会使第2部分和第3部分占据整个屏幕?或者这只能用手风琴来完成吗? 是否很难/很容易更改<>图标+ - 图标?如果有的话,那里有任何教程吗?
手风琴: 可以<>改为+ - ?如果有的话,那里的任何教程? 可以更改蓝色的默认颜色吗?
TIA
答案 0 :(得分:2)
Expander
听起来像是适合您情况的合适选项。幸运的是,它与开箱即用的WPF一起提供,与Accordion控件不同。但是我发现这个问题与Accordion control有关,并认为它对你来说很有用。
要更改Expander
切换按钮的外观,您需要修改其control template。将模板更改为显示正或负而不是箭头并不太难。如果您访问该链接,则会看到您要更改模板的ExpanderToggleButton
部分。
由于您只想将箭头更改为使用加号/减号,因此只需更改col {/扩展箭头的Path
数据即可。在使用路径绘制简单形状时,您可以查看here以获得更多信息。
Here是某人修改Expander
控件模板的示例。这是一个不同的外观,但如果你决定走这条路,它应该是有用的。
编辑:
非常简单的例子(没有ToggleButton外观的变化)来了解如何collaspe和节省房地产:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColunmDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Expander Name="Section1" Grid.RowSpan="2" Grid.Colunm="0" ExpandDirection="Left">
<!-- Stuff goes here -->
</Expander>
<Expander Name="Section2" Grid.RowSpan="0" Grid.Colunm="1"
<!-- Stuff goes here -->
</Expander>
<Expander Name="Section3" Grid.RowSpan="1" Grid.Colunm="0"
<!-- Stuff goes here -->
</Expander>
</Grid>
答案 1 :(得分:1)
您可以使用GridSplitter。用户可以拖动它们来改变大小。不是点击 - 拖动。
<GridSplitter Grid.Row="1" Grid.Column="1"
Width="3" Background="Purple" VerticalAlignment="Stretch" HorizontalAlignment="Center" ShowsPreview="False" >