注意:这是我第一次使用WPF.
我试图在右下角对齐某个控件,现在就说一个按钮.但是当我调试我的应用程序时,它错过了8个像素的底部和右侧.我会附上2张照片,告诉你会发生什么.
如何保持按钮到位?
我的XAML代码:
<Window x:Class="Plugin_Manager.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Plugin Manager" Height="350" Width="525" Loaded="Window_Loaded_1">
<Grid x:Name="GridMain">
<Button Content="Refresh" Margin="432,288,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="75"/>
<ListView HorizontalAlignment="Left" Height="273" Margin="10,10,0,0" VerticalAlignment="Top" Width="497">
<ListView.View>
<GridView>
<GridViewColumn/>
</GridView>
</ListView.View>
</ListView>
</Grid>
Run Code Online (Sandbox Code Playgroud)

如果您选择使用Grid布局,则应尽量避免放置对象Margin. Margin应该用于在对象周围创建缓冲区,而不是将其移动到窗口中的特定点.使用布局管理器的强大功能!
这是一个Grid可以满足您需求的示例.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListView Grid.Row="0" />
<Button Grid.Row="1" HorizontalAlignment="Right" Content="Push Me" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
我还会在WPF中阅读布局管理器.有几个; 每个都有自己的优点和缺点.
这是一个DockPanel版本.
<DockPanel>
<Button DockPanel.Dock="Bottom" HorizontalAlignment="Right" Content="Push Me" />
<ListView />
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
要在按钮和窗口镶边之间创建缓冲区,您可以执行以下几项操作:
<Grid Margin="10"> 将在所有内容和所有侧面的窗口镶边之间应用10像素空间.<Grid Margin="0,0,10,10"> 将缩进所有内容,但仅限于右侧和底部.<Grid Margin="10,0,10,10"> 除了顶部之外的所有缩进(我通常这样做,具有不同的边距值).<Button Margin="0,0,10,10"> 只会缩进chrome中的按钮(这是您评论问题的直接答案).
Grid上面的内容替换DockPanel为第二个示例,或者您正在使用的任何其他布局管理器.可用性方面的注意事项:您的确认按钮(我假设您的按钮将是"确定/取消"类型按钮)不应与其他内容缩进.所有与右边距对齐的控件都应该在同一点上进行(即,您可以在它们的右侧绘制一条垂直线).
因此,使用您的问题示例:您的按钮不应缩进10个像素,而列表框不是.保持一致排列将改善您的应用程序的整体外观.
(这结束了我的"可用性和外观很重要"旁注):)
| 归档时间: |
|
| 查看次数: |
1951 次 |
| 最近记录: |