2011-09-22 7 views
5

Come posso disegnare un cerchio in WPF (senza code-behind) utilizzando min(width, height)/2 come raggio?Disegna un cerchio in WPF usando min (larghezza, altezza)/2 come raggio

+1

L'ipotesi che ciò sia possibile senza code-behind è probabilmente errata. –

+0

Scrivo il tema per WPF e ho bisogno di risolvere senza usare code-behind = ( –

+0

usa un controllo di ellisse ei valori di altezza e larghezza saranno uguali allora sarà un cerchio – ravithejag

risposta

4

Da dove vengono la larghezza e l'altezza? Esempio XAML per un cerchio è:

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

Un cerchio è solo un'ellisse dove Altezza = Larghezza.

+0

Ellisse posto in Griglia. Griglia determina automaticamente larghezza e altezza (Column Widdth = "*", Row Height = "*") –

+0

Non penso che si possa fare ciò in puro XAML in quanto non conosco alcuna logica per ottenere il minimo di due numeri. Esperto XAML. – Paparazzi

7

lo si può fare in puro XAML è sufficiente utilizzare Binding per i valori. Devi anche assicurarti che tutto sia denominato

<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> 
Problemi correlati