【问题标题】:How to anchor controls in WPF?如何在 WPF 中锚定控件?
【发布时间】:2011-03-04 01:10:38
【问题描述】:

我有一个 TreeView 填充应用程序的顶部,但由于 TreeView 中的项目数发生变化,我的应用按钮垂直更改其位置。有没有办法将它锚定到窗口的底部,所以它总是在窗口的右下角,即距离右下边缘 10x10 的距离。

【问题讨论】:

    标签: c# .net wpf anchor


    【解决方案1】:

    您可以在 TreeView 或 Button 上设置 Horizo​​ntalAlignment 和 VerticalAlignment(我不知道您要锚定哪个控件),也可以将控件放在 DockPanel 中。

    要将控件与其他控件隔开,请使用边距。

    Margin="0 0 10 10"
    

    只会在右侧和底部为您提供边距

    我希望这能让它更清楚一点:

    <Window>   
      <DockPanel VerticalAlignment="Stretch">
        <TreeView DockPanel.Dock="Top" />
        <Button DockPanel.Dock="Bottom" Margin="0 0 10 10" />   
      </DockPanel>
    </Window>
    

    【讨论】:

    • 谢谢,我正在尝试将按钮固定在窗口中。
    • 谢谢,但是当我这样做时,它会锚定到 TreeView,而不是 Window。
    • 谢谢,顺便说一句,我可以在 Grid 标签内使用 DockPanel 吗?所以窗口-> 网格-> DockPanel。还是我应该摆脱它?
    • 几乎一切皆有可能,在我当前的项目中,我有 Grid > Grid > Items Control > StackPanel 作为 ItemsPresenter > 每个项目的 Grid
    【解决方案2】:

    要实现锚定,设置以下属性:

    • 宽度=“自动”
    • 高度=“自动”
    • VerticalAlignment="拉伸"
    • Horizo​​ntalAlignment="Stretch"
    • 根据需要设置边距。

    例子:

        <TabControl
    
            Name="tabControl1"
    
            HorizontalAlignment="Stretch" 
    
            Margin="40,40,40,40"  
    
            Width="auto" 
    
            Height="auto" 
    
            VerticalAlignment="Stretch">
    

    【讨论】:

    • 这个答案绝对是实现更接近经典 WinForms“锚”属性的最佳答案。
    【解决方案3】:

    我认为您需要在按钮的 XAML 中使用它:

    HorizontalAlignment="Right" VerticalAlignment="Bottom"
    

    【讨论】:

    • 谢谢,但我要如何指定间距?
    • @Joan Venge 我猜是 Margin 属性。
    猜你喜欢
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 2011-08-25
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多