2014-05-12 4 views
0

MVVM 패턴을 사용하여 응용 프로그램을 구현하는 WPF가 새롭습니다. 테두리는 경로와 텍스트 블록을 포함하는 컨테이너입니다. 텍스트 블록에 숫자가 포함되어 있습니다. 테두리 컨트롤의 너비와 높이를 viewmodel 속성과 바인딩합니다. 경계 상자의 왼쪽 상단에있는 테두리 컨테이너 및 경로 개체의 중간에 텍스트 블록 포함 (예 : 숫자)을 표시하려고합니다. 테두리 컨트롤 중간에서 텍스트 블록의 위치를 ​​설정하는 방법텍스트 블록 위치 및 크기 조정

<Border BorderThickness="5" BorderBrush="#FF30333A" Width="{Binding Width}" Background="#FF1C2125" 
         Height="{Binding Height}" 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="*"/> 
          <RowDefinition Height="Auto"/> 
         </Grid.RowDefinitions> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="Auto"/> 
          <ColumnDefinition Width="Auto"/> 
         </Grid.ColumnDefinitions> 
         <Path Name="starPath" Fill="Gray" Data="M 9,0 L 7,6 L 0,6 L 6,11 L 4,17 L 9,12 L 14,17 L 12,11 L 18,6 L 11,6 L 9,0"> 
          </Path> 

         <TextBlock Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="1" Text="2" VerticalAlignment="Center" HorizontalAlignment="Right" FontSize="20" Foreground="White" Background="Gray"> 
         </TextBlock> 
        </Grid> 
       </Border> 

답변

-1
Try this : 


<Border BorderThickness="5" BorderBrush="#FF30333A" Width="{Binding Width}" background="#FF1C2125" Height="{Binding Height}"> 
    <Grid> 
     <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <Path Grid.Row="0" HorizontalAlignment="Left" Name="starPath" Fill="Gray" Data="M 9,0 L 7,6 L 0,6 L 6,11 L 4,17 L 9,12 L 14,17 L 12,11 L 18,6 L 11,6 L 9,0"/> 

     <TextBloc Grid.Row="1" Text="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" FontSize="20"/> 
    </Grid> 
</Border> 

그래서? 작동합니까?

+0

TextBlock에는 erticalContentAlignment 및 HorizontalContentAlignment 속성이 없습니다. 아래의 방법으로 시도했습니다 – user3106005

+0

죄송합니다, TextBox를 사용할 수 있습니다 ^^ .... – angel