C# 如何使用wpf展开器校准
我试图创建一个WPF窗口,当用户单击More expander按钮时,它有一个简单的扩展器来扩展datagrid。当用户想要隐藏datagrid时,用户只需点击较小的扩展按钮 我还使用坞面板来分离页眉、左、右和页脚 问题是:C# 如何使用wpf展开器校准,c#,.net,wpf,C#,.net,Wpf,我试图创建一个WPF窗口,当用户单击More expander按钮时,它有一个简单的扩展器来扩展datagrid。当用户想要隐藏datagrid时,用户只需点击较小的扩展按钮 我还使用坞面板来分离页眉、左、右和页脚 问题是: 我想让less按钮在用户之前位于中间 单击“更多扩展器”按钮。当用户单击更多 扩展器按钮,less按钮将被推到左侧,以显示 右边是datagrid 当扩展器关闭并关闭时,如何更改其名称 打开我可以在xaml级别执行吗 下面是xaml代码: <Window x:Clas
<Window x:Class="M.SalesWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SalesWindow" Height="300" Width="300">
<DockPanel>
<StackPanel DockPanel.Dock="Top">
<Label FontSize="28" Content="Sales">
</Label>
</StackPanel>
<StackPanel DockPanel.Dock="Left" Width="auto" HorizontalAlignment="Center">
<Label FontSize="15" Content="Enter Amount" Height="26" Width="168" />
<Separator Width="168" />
</StackPanel>
<StackPanel DockPanel.Dock="Right">
<Expander ExpandDirection="Left" HorizontalAlignment="Right" VerticalAlignment="Stretch">
<Expander.Header>
<TextBlock Text="More">
<TextBlock.LayoutTransform>
<RotateTransform Angle="-90"/>
</TextBlock.LayoutTransform>
</TextBlock>
</Expander.Header>
<Expander.Content>
<StackPanel>
<DataGrid ItemsSource="{Binding Products}">
</DataGrid>
</StackPanel>
</Expander.Content>
</Expander>
</StackPanel>
</DockPanel>
</Window>
谢谢。用下面的代码替换您的代码,看看它的神奇之处。这也将根据您的要求解决对齐问题。我已经删除了DockPanel,因为您可以使用这段代码获得类似的结果
<StackPanel>
<StackPanel>
<Label FontSize="28" Content="Sales">
</Label>
</StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" HorizontalAlignment="Center">
<Label FontSize="15" Content="Enter Amount" Height="26" Width="168" />
<Separator Width="168" />
</StackPanel>
<Expander Grid.Column="1" ExpandDirection="Left" HorizontalAlignment="Right" VerticalAlignment="Stretch">
<Expander.Style>
<Style TargetType="Expander">
<Setter Property="IsExpanded" Value="False" />
<Setter Property="Header">
<Setter.Value>
<TextBlock Text="Less">
<TextBlock.LayoutTransform>
<RotateTransform Angle="-90"/>
</TextBlock.LayoutTransform>
</TextBlock>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsExpanded,RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Header">
<Setter.Value>
<TextBlock Text="More">
<TextBlock.LayoutTransform>
<RotateTransform Angle="-90"/>
</TextBlock.LayoutTransform>
</TextBlock>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
<Expander.Content>
<StackPanel>
<DataGrid ItemsSource="{Binding Products}">
</DataGrid>
</StackPanel>
</Expander.Content>
</Expander>
</Grid>
</StackPanel>
技巧在于下面几行代码
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
感谢您的努力,这不是我想要的,与我之前的屏幕一样。我希望函数在点击Expense按钮之前位于中间。我认为应该切换列定义,因此自动在右侧。我已再次编辑代码,以满足您的第二个要求,但我错过了。因此,现在您可以根据展开的属性更改文本。希望这能彻底解决你的问题。