WPF&;XAML问题

WPF&;XAML问题,wpf,xaml,inkcanvas,Wpf,Xaml,Inkcanvas,我是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="

我是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中使用过
Canvas

DockPanel
是您的朋友,它的工作原理如下:

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

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

您不希望这些东西放在
画布中。我不确定我是否在WPF中使用过
Canvas

DockPanel
是您的朋友,它的工作原理如下:

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

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

我不确定我是否理解您的问题。您希望屏幕上的网格和菜单位于何处?我不确定是否理解您的问题。您希望网格和菜单在屏幕上位于何处?@user没有锚。有许多不同的面板类型,每个面板都有自己的布局方式。您只需熟悉它们(DockPanel、StackPanel、Grid、FlowLayoutPanel等),并学会应用正确的方法以获得正确的效果。@user没有锚。有许多不同的面板类型,每个面板都有自己的布局方式。您只需要熟悉它们(DockPanel、StackPanel、Grid、FlowLayoutPanel等),并学习如何应用正确的方法以获得正确的效果。