2013-05-03 4 views
0

사용자 지정 컨트롤을 개발 중입니다. 여기서 및 ButtonGrid 안에 있습니다.사용자 지정 컨트롤의 위치 지정 UIElement

문제는 UserControl에 대한 사용자 지정 속성을 설정했을 때입니다. 왼쪽 : 단추가 TextBox 앞에 표시되어야하고 오른쪽 단추가 텍스트 상자의 오른쪽에 표시되어야합니다.

내 요구 사항에 따라 위치를 지정할 수 없기 때문에 두 요소를 모두 Grid에 정의하고 있습니다.

답변

2

Grid을 사용해야하는 경우 Grid에 3 개의 열이 있고 사용자 정의 속성에 따라 TextBoxGrid.Column을 전환 할 수 있습니다. 당신의 {x:Type CustomUserControl}

DataTrigger에서
<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}