2015-08-24 2 views
0

Я разрабатываю универсальное приложение для Windows в XAML/C#, и мне не удается создать кнопку круга, которую я могу изменить. Я использую Ellipse с равномерным растяжением, чтобы сделать его круглым и ContentPresenter.Редактируемая кнопка круга xaml

<ControlTemplate TargetType="Button"> 
     <Grid> 
      <Ellipse Stretch="Uniform"> 
      <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
     </Grid> 
    </ControlTemplate> 

Проблема равномерная Эллипс автоматически выравниваются сверху, слева, и это невозможно сделать его растянуть сетку. Когда я изменяю размер кнопки, ContentPresenter остается в центре, а эллипс остается в верхнем левом углу. Я хотел бы изменить размер кнопки и текст останется в центре круга. Спасибо за помощь!

+0

Редактировать шаблон [Стиль] (https://msdn.microsoft.com/en-us/library/windows/apps/xaml/JJ709909.aspx?f=255&MSPPError=-2147217396) для кнопки, а не только настройки контрольная таблица. –

+0

На самом деле я устанавливаю ControlTemplate непосредственно в ресурсе стиля, который я использую для кнопок – 695nb

ответ

1

Вы можете использовать путь с круговой EllipseGeometry:

<ControlTemplate TargetType="Button"> 
    <Grid> 
     <Path Stretch="Uniform" ...> 
      <Path.Data> 
       <EllipseGeometry RadiusX="1" RadiusY="1"/> 
      </Path.Data> 
     </Path> 
     <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
    </Grid> 
</ControlTemplate> 

Вы бы, однако, должны явно указать ширину или высоту Баттона, в противном случае он будет занимать все доступное пространство.

+0

Спасибо, что работает очень хорошо :) – 695nb

1

Я также нашел другое решение, которое заключается в использовании ViewBox:

<ControlTemplate TargetType="Button"> 
    <ViewBox> 
     <Grid> 
      <Ellipse Stretch="Uniform" Width="50" Height="50"> 
      <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
     </Grid> 
    </ViewBox> 
</ControlTemplate> 

Окно видимости автоматически масштабирует все при изменении размеров. Вы должны установить ширину и высоту, но нужно установить пропорции. Очень полезно при использовании пользовательского элемента управления с Windows и Windows Phone. Спасибо за ваши ответы!

Смежные вопросы