StackPanel的Orientation属性被定义为单独的xaml文件中的顶级组件被忽略

时间:2012-07-20 13:08:26

标签: wpf xaml

我在名为HPanel.xaml的文件中定义了一个StackPanel,如下所示:

<StackPanel Orientation="Horizontal" 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" />

然后,像这样使用HPanel:

<v:HPanel>
  <Label Content="The label" />
  <TextBox Text="{Binding transporter.Foo, 
    UpdateSourceTrigger=PropertyChanged}" />
</v:HPanel>

会给我一个垂直方向而不是水平方向的堆叠面板。

为什么?

1 个答案:

答案 0 :(得分:0)

多田!

我现在已经制作了一个工作测试案例,如果我有一个代码,堆栈面板变得很好。要处理的属性需要InitializeComponent。

MainWindow.xaml:

<Window x:Class="wpftestapp.MainWindow"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:v="clr-namespace:wpftestapp.views"
     Title="MainWindow" Height="350" Width="525">
    <v:HPanel>
      <Label Content="a"/>
      <Label Content="b"/>
      <Label Content="c"/>
    </v:HPanel>
</Window>

HPanel.xaml:

<StackPanel Orientation="Horizontal"
    x:Class="wpftestapp.views.HPanel"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"/>

HPanel.xaml.cs:

using System.Windows.Controls;

namespace wpftestapp.views
{
  public partial class HPanel : StackPanel
  {
    public HPanel()
    {
      InitializeComponent();
    }
  }
}

感谢您的帮助!