2011-09-22 3 views
5

min(width, height)/2을 반경으로 사용하여 코드 숨김없이 WPF에서 원을 그리는 방법은 무엇입니까?min (너비, 높이)/2를 반경으로 사용하여 WPF에서 원을 그립니다.

+1

으로 지정되어 있는지 확인해야합니다. 코드 숨김없이 가능하다는 가정은 잘못된 것입니다. –

+0

WPF 용 테마를 쓰고 코드 백스 = ( –

+0

) 타원 컨트롤을 사용하고 높이와 너비 값을 같게하면 동그라미가됩니다. – ravithejag

답변

4

너비와 높이는 어디에서 오는 것입니까? 원의 XAML 예는 다음과 같습니다.

<Canvas Background="LightGray"> 
     <Ellipse 
      Canvas.Top="50" 
      Canvas.Left="50" 
      Fill="#FFFFFF00" 
      Height="75" 
      Width="75" 
      StrokeThickness="5" 
      Stroke="#FF0000FF"/> 
    </Canvas> 

원은 높이 = 폭 인 타원형입니다.

+0

타원이 격자에 배치됩니다. 격자가 너비를 결정하고 자동으로 높이를 결정합니다. –

+0

두 숫자의 최소값을 얻는 데 필요한 논리를 모르므로 순수 XAML에서는 그렇게 할 수 없다고 생각합니다. 그러나 나는 아닙니다. XAML 전문가. – Paparazzi

7

순수 XAML에서는 값에 Binding 만 사용해야합니다. 또한 모든 이름이

<Grid Name="grdMain"> 
     <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="75" Name="Col1" /> 
     <ColumnDefinition Width="100" Name="Col2" /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="75" Name="Row1" /> 
       <RowDefinition Height="100" Name="Row2" /> 
     </Grid.RowDefinitions> 

      <Ellipse Grid.Column="1" Grid.Row="1" 
       Canvas.Top="50" 
       Canvas.Left="50" 
       Fill="#FFFFFF00" 
       Height="{Binding RowDefinitions/ActualHeight, ElementName=Row1, Mode=OneWay}" 
       Width="{Binding ColumnDefinitions/ActualWidth, ElementName=Col1, Mode=OneWay}" 
       StrokeThickness="5" 
       Stroke="#FF0000FF"/> 
    </Grid> 
관련 문제