WPF控制,节省房地产

时间:2011-08-30 18:26:06

标签: c# wpf

我是WPF和C#的新手,我正在尝试帮助一些GUI工作。我们基本上有3个部分,一个LHS(左手边)[第1节],一个有顶部和底部的RHS [第2节和第3节]。看起来像这样

1 | 2
1 | -
1 | 3

他们希望通过点击按钮缩小每个部分。目前|和 - 是间隔项,可以拖动(编辑:这是使用他们不喜欢的网格切割器完成的)。我做了一点研究,发现有扩展物品和手风琴物品。我不知道是否可以用于这种情况,什么是最不麻烦的。在尝试每一个时,我会想到一些关于控件的其他问题,因为我不熟悉它们。

扩展器: 通过缩小第1部分,是否会使第2部分和第3部分占据整个屏幕?或者这只能用手风琴来完成吗? 是否很难/很容易更改<>图标+ - 图标?如果有的话,那里有任何教程吗?

手风琴: 可以<>改为+ - ?如果有的话,那里的任何教程? 可以更改蓝色的默认颜色吗?

TIA

2 个答案:

答案 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" >