0

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>

水平方向ではなく垂直方向のスタックパネルが表示されます。

なんで?

4

1 に答える 1

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();
    }
  }
}

助けてくれてありがとう!

于 2012-07-20T15:44:24.100 に答える