我想将 Expander 按钮放置在标签的右侧。这个怎么做?
问问题
21432 次
4 回答
33
您也可以将 设置FlowDirection
为RightToLeft
,但这可能会导致其他问题。例如,它还会更改扩展器内容的流向,因此您可能需要将其设置回来。
<Expander FlowDirection="RightToLeft">
<StackPanel FlowDirection="LeftToRight">
</StackPanel>
</Expander>
于 2013-09-10T10:11:35.357 回答
8
You must restyle the control's template. Here's an example: http://patconroy.wordpress.com/2008/12/18/restyling-the-wpf-expander-control/
于 2012-01-07T13:32:19.363 回答
4
解决此问题的另一种方法是将扩展器放置在您喜欢的位置,而扩展器本身没有任何标题或内容。然后IsExpanded
使用BooleanToVisibilityConverter将内容控件的可见性绑定到扩展器属性。
<StackPanel>
<StackPanel.Resources>
<BooleanToVisibilityConverter x:Key="boolToVisibility" />
</StackPanel.Resources>
<DockPanel>
<Expander DockPanel.Dock="Right" x:Name="rightAlignedExpander" />
<TextBlock Text="Expanders header" VerticalAlignment="Center" />
</DockPanel>
<Grid Visibility="{Binding IsExpanded, ElementName=rightAlignedExpander, Converter={StaticResource boolToVisibility}}">
<TextBlock Text="Expanders content"/>
</Grid>
</StackPanel>
缺点是单击标题时它不会展开,但如果需要,可以轻松实现。
我个人认为这更简单直接,而不是完全重新设计控件的模板。它还有一个额外的好处,那就是它可以保留已经应用到扩展器的任何样式,例如在使用 DevExpress 或 Telerik 等 3rd 方主题时。
于 2014-03-23T13:51:07.807 回答
1
您可以使用转换命令来翻转控件
<Expander RenderTransformOrigin="0.5,0.5">
<Expander.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="-1" />
<SkewTransform AngleY="0" AngleX="0" />
<RotateTransform Angle="0" />
<TranslateTransform />
</TransformGroup>
</Expander.RenderTransform>
<Expander.Header>
<Grid RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="-1" />
<SkewTransform AngleY="0" AngleX="0" />
<RotateTransform Angle="0" />
<TranslateTransform />
</TransformGroup>
</Grid.RenderTransform>
<TextBlock>Text</TextBlock>
</Grid>
</Expander.Header>
<Grid Height="100" RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" ScaleX="-1" />
<SkewTransform AngleY="0" AngleX="0" />
<RotateTransform Angle="0" />
<TranslateTransform />
</TransformGroup>
</Grid.RenderTransform>
<TextBlock>Text</TextBlock>
</Grid>
</Expander>
于 2018-08-21T03:02:44.627 回答