<Expander ExpandDirection="Down" Width="96">
<Expander.Header>
<TextBlock Text="标题" FontWeight="Bold"/>
</Expander.Header>
<Expander.Content>
<TextBlock TextWrapping="Wrap" Text="这里是内容。"/>
</Expander.Content>
</Expander>
Expander控件的Header和Content都可以为任何对象,只要能正常显示即可。
下面就是该控件运行时的截图。
这个控件最实用的地方,就是做导航栏。
<StackPanel Margin="20,20" Width="100" Height="460" HorizontalAlignment="Left"
VerticalAlignment="Top">
<Expander VerticalAlignment="Stretch" ExpandDirection="Down" HorizontalContentAlignment="Left" SnapsToDevicePixels="True">
<Expander.Header>
<TextBlock Text="用户管理" FontSize="14" FontWeight="Bold" />
</Expander.Header>
<Expander.Content>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<RadioButton Grid.Row="0">会员管理</RadioButton>
<RadioButton Grid.Row="1">角色管理</RadioButton>
</Grid>
</Expander.Content>
</Expander>
<Expander VerticalAlignment="Stretch" ExpandDirection="Down" HorizontalContentAlignment="Left" SnapsToDevicePixels="True">
<Expander.Header>
<TextBlock Text="文档管理" FontSize="14" FontWeight="Bold" />
</Expander.Header>
<Expander.Content>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<RadioButton Grid.Row="0">部门资料</RadioButton>
<RadioButton Grid.Row="1">员工资料</RadioButton>
<RadioButton Grid.Row="2">职位资料</RadioButton>
</Grid>
</Expander.Content>
</Expander>
<Expander VerticalAlignment="Stretch" ExpandDirection="Down" HorizontalContentAlignment="Left" SnapsToDevicePixels="True">
<Expander.Header>
<TextBlock Text="采购管理" FontSize="14" FontWeight="Bold" />
</Expander.Header>
<Expander.Content>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<RadioButton Grid.Row="0">采购计划</RadioButton>
<RadioButton Grid.Row="1">需求分析</RadioButton>
<RadioButton Grid.Row="2">采购单</RadioButton>
<RadioButton Grid.Row="3">入库验收</RadioButton>
<RadioButton Grid.Row="4">入库退回</RadioButton>
</Grid>
</Expander.Content>
</Expander>
<Expander VerticalAlignment="Stretch" ExpandDirection="Down" HorizontalContentAlignment="Left" SnapsToDevicePixels="True">
<Expander.Header>
<TextBlock Text="供应商" FontSize="14" FontWeight="Bold" />
</Expander.Header>
<Expander.Content>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<RadioButton Grid.Row="0">基本资料</RadioButton>
<RadioButton Grid.Row="1">往来单位</RadioButton>
<RadioButton Grid.Row="2">上游供应商</RadioButton>
</Grid>
</Expander.Content>
</Expander>
</StackPanel>
另外,通过ExpandDirection属性可控其展开的方向。
<Expander VerticalAlignment="Stretch" ExpandDirection="Right" HorizontalContentAlignment="Left" SnapsToDevicePixels="True">
............
</Expander>
欢迎加入.NET技术交流群:189931386 Expander是一个可以展开和折叠的控件,它包含两部分——标头和内容。标头通Header属性来设置,内容通过Conent属性设置,如下面一个简单的例子:
<Style x:Key="ExpanderStyle" TargetType="{x:Type Expander}">
<Setter Property="Foreground" Value="#FF217cb5"/>
1、最奇特的具有标题的内容控件式Expander控件,它封装了一块内容,通过单击小箭头按钮可现实或隐藏所包含的内容。
2、Expander控件默认折叠,可通过设置IsExpandered属性改变这种行为。
3、可设置扩展器的扩展方向,默认为Down,通过设置ExpandDirection属性的Up、Left或Right值。
当折叠Expander时,箭头始终指向将要展开的方向。
4、处理窗
WPF(Windows Presentation Foundation)提供了一种灵活的方式来鼠标改变控件的大小,这个过程可以通过拖拽控件的边缘来实现。
在WPF中,控件大小可以通过两种方式来控制:高和宽,以及它们之间的比例。因此,任何控件都可以拖拽它的边缘来改变它的大小。
实现这个过程需要以下几个步骤:
1. 给控件添加鼠标事件处理程序,比如MouseDown、MouseUp和MouseMove事件。
2. 在MouseDown事件中,记录鼠标按下的位置和控件当前的大小。
3. 在MouseMove事件中,计算鼠标移动的距离,并更新控件的大小。
4. 在MouseUp事件中,重置记录的数据。
需要注意的是,这个过程中,还需要判断鼠标是否在控件的边缘,如果是,才能拖拽控件的大小。此外,在拖拽控件的过程中,还需要对控件的最大和最小大小进行限制。
总之,使用WPF鼠标改变控件大小,可以实现界面的自定义大小和位置,提高用户的交互体验。