2011-09-22 13 views
5

¿Cómo puedo dibujar un círculo en WPF (sin código subyacente) usando min(width, height)/2 como radio?Dibuje un círculo en WPF usando min (ancho, alto)/2 como radio

+1

Su suposición de que esto es posible sin código subyacente probablemente sea incorrecta. –

+0

Escribo el tema para WPF y necesito una solución sin usar code-behind = ( –

+0

use un control de elipse y los valores de altura y ancho serán iguales, entonces será un círculo – ravithejag

Respuesta

4

¿De dónde viene el ancho y la altura? El ejemplo XAML para un círculo es:

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

Un círculo es solo una Elipse donde Altura = Ancho.

+0

Elipse colocado en cuadrícula. La cuadrícula determinará el ancho y el alto automáticamente (Columna Widdth = "*", Row Height = "*") –

+0

No creo que puedas hacer eso en XAML puro ya que no conozco ninguna lógica para obtener el mínimo de dos números. Pero no soy un Experto XAML. – Paparazzi

7

puede hacerlo en XAML puro solo necesita usar Enlace para los valores. También debe asegurarse de que todo se llame

<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> 
Cuestiones relacionadas