【问题标题】:WPF & XAML problemWPF & XAML 问题
【发布时间】:2011-01-05 19:19:59
【问题描述】:

我是 WPF 和 Xaml 的新手 我不知道如何锚定如何停靠... 在此屏幕上,灰色状态栏停靠,但网格和菜单并非所有组件都在画布中。 这是 XAML

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication6.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">

<Grid x:Name="LayoutRoot">
    <Canvas>
        <StackPanel Height="40" Width="624" VerticalAlignment="Top" HorizontalAlignment="Center">
            <Menu Height="39" Margin="1,0,0,0">
                <Menu.Background>
                    <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                        <GradientStop Color="#FFF6F6F6" Offset="0.25"/>
                        <GradientStop Color="#FFEAE8E8" Offset="0.25"/>
                        <GradientStop Color="#FFDCD9D9" Offset="0.8"/>
                        <GradientStop Color="White" Offset="1"/>
                    </LinearGradientBrush>
                </Menu.Background>
            </Menu>
        </StackPanel>
        <StackPanel Height="356" Canvas.Top="44" Width="161" HorizontalAlignment="Left">
            <Expander Header="Expander" Height="107">
                <Grid Background="#FFE5E5E5"/>
            </Expander>
        </StackPanel>
        <StackPanel Height="360" Canvas.Left="161" Canvas.Top="40" Width="463">
            <DataGrid Height="361"/>
        </StackPanel>
    </Canvas>
    <StackPanel Height="40" Margin="-1,0,0,0" VerticalAlignment="Bottom">
        <StatusBar Height="40" Background="#FF897676"/>
    </StackPanel>
</Grid>

【问题讨论】:

  • 我不确定我是否理解您的问题。您希望网格和菜单在屏幕上的哪个位置?

标签: wpf xaml inkcanvas


【解决方案1】:

您不希望这些东西进入Canvas。我不确定我是否曾经在 WPF 中使用过 Canvas

DockPanel 是你的朋友,它是这样运作的:

  • DockPanel 中的每个控件都有一个 DockPanel.Dock 附加属性:Left、Top、Right 或 Bottom
  • 什么,没有填充?这很重要:您可以让一个控件填满可用空间,这将是DockPanel 中声明的最后一个控件。因此,即使您希望“填充”控件位于最顶部,也可以将其设置为 DockPanel 中的最后一项并设置 DockPanel.Dock="Top"
  • 除了最后一个“填充”项外,其他具有相同停靠设置的项目将按照声明的顺序停靠。

在最基本的情况下,DockPanel 可以像 StackPanel 一样使用,只是它会填满可用空间。

【讨论】:

  • @user 没有锚。有很多不同的面板类型,每一种都有自己的子元素布局方式。您只需要熟悉它们(DockPanel、StackPanel、Grid、FlowLayoutPanel 等)并学习应用正确的效果即可。
猜你喜欢
  • 2013-09-04
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多