2011-09-22 30 views
5

Làm thế nào tôi có thể vẽ một vòng tròn trong WPF (không có mã sau) bằng cách sử dụng min(width, height)/2 làm bán kính?Vẽ một vòng tròn trong WPF bằng cách sử dụng min (width, height)/2 làm bán kính

+1

Giả định rằng điều này có thể không có mã sau có thể sai. –

+0

Tôi viết chủ đề cho WPF và tôi cần giải pháp mà không cần sử dụng mã-behind = ( –

+0

sử dụng điều khiển hình elip và giá trị độ cao và chiều rộng sẽ bằng nhau thì đó sẽ là một vòng tròn – ravithejag

Trả lời

4

Chiều rộng và chiều cao bắt nguồn từ đâu? Ví dụ XAML cho một vòng kết nối là:

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

Vòng tròn chỉ là hình elip có chiều cao = rộng.

+0

Ellipse được đặt trong Lưới. (Cột Widdth = "*", Chiều cao hàng = "*") –

+0

Tôi không nghĩ rằng bạn có thể làm điều đó trong XAML thuần túy vì tôi không biết bất kỳ logic nào để có được tối thiểu hai số. Nhưng tôi không phải là Chuyên gia XAML. – Paparazzi

7

bạn có thể làm điều đó trong XAML thuần túy, bạn chỉ cần sử dụng Ràng buộc cho các giá trị. Bạn cũng phải đảm bảo rằng mọi thứ được đặt tên theo số

<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> 
Các vấn đề liên quan