0

TextBox内にと がButton配置されているカスタム コントロールを開発していGridます。

UserControl問題は、 Say - Leftのカスタム プロパティを設定したときです。Button は の前に表示さTextBoxれ、Right の場合、ボタンはテキスト ボックスの右側に表示されます。

両方の要素を定義しているためGrid、要件に従って配置できません。

4

1 に答える 1

2

を使用する必要がある場合は、3 つの列を作成し、カスタム プロパティに基づいて切り替えるGridことができます。GridTextBox Grid.Column

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="Auto" />
  </Grid.ColumnDefinitions>
  <Button Grid.Column="1"
          Content="Some Text" />
  <TextBox Text="Test">
    <TextBox.Style>
      <Style TargetType="{x:Type TextBox}">
        <Setter Property="Grid.Column"
                Value="0" />
        <Style.Triggers>
          <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor,
                                                                        AncestorType={x:Type UserControl}},
                                          Path=Left}"
                        Value="True">
            <Setter Property="Grid.Column"
                    Value="2" />
          </DataTrigger>
        </Style.Triggers>
      </Style>
    </TextBox.Style>
  </TextBox>
</Grid>

を切り替えることが{x:Type UserControl}できDataTriggerます{x:Type CustomUserControl}

于 2013-05-03T09:35:03.177 に答える