Нарисуйте круг в WPF, используя min (ширина, высота) / 2 в качестве радиуса - PullRequest
10 голосов
/ 22 сентября 2011

Как я могу нарисовать круг в WPF (без кода), используя min(width, height)/2 в качестве радиуса?

Ответы [ 2 ]

11 голосов
/ 18 марта 2014

вы можете сделать это в чистом 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>
5 голосов
/ 22 сентября 2011

Откуда берется ширина и высота? Пример XAML для круга:

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

Круг - это просто эллипс, где высота = ширина.

...