2013-07-22 3 views
13

터치로 작동하는 앱에 라디오 버튼이 있습니다. 최종 사용자는 두꺼운 손가락을 가질 수 있기 때문에 라디오 버튼을 더 크게 원과 텍스트로 만들려합니다.라디오 버튼 크기 조정

문제는 라디오 버튼의 원이 아니라 텍스트를 더 크게 만들 수 있다는 것입니다.

<RadioButton VerticalAlignment="Center" x:Name="rbtnContainers" Click="SetContainers" FontSize="18">Containers</RadioButton> 

높이를 사용하면 작동하지 않습니다. 라디오 버튼을 더 크게 만들지 만 원은 동일하게 유지됩니다.

힌트 또는 답변 감사합니다.

+0

viewbox에서 사용하고 그 높이를 변경하십시오 – whoisthis

+0

+1 세계의 두꺼운 손가락에 대해 생각하십시오! –

답변

23

이 방법이 유용 할 것입니다.

<Viewbox Height="40"> 
    <RadioButton></RadioButton> 
</Viewbox> 

또 다른 방법은 RadioButton에 대한 고유 한 ControlTemplate을 작성하고 원하는대로 모양을 변경하는 것입니다.

+0

잘 작동합니다. 감사합니다. –

+0

내가 그걸 적용 할 때 어떤 이유에서 건 라디오 버튼의 정렬을 엉망으로 만든다. – Maslow

+0

Very Nice! 사용자 지정 템플릿을 만드는 것보다 빠르고 쉽습니다. – t4taurus

2

원만 크기를 조정하려면 RadioButton 템플릿을 사용하고 WidthHeightBulletChrome으로 변경하십시오.

<ControlTemplate TargetType="RadioButton" x:Key="CustomRadioButtonStyle" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mwt="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"> 

     <BulletDecorator Background="#00FFFFFF"> 
      <BulletDecorator.Bullet> 
       <mwt:BulletChrome Height="25" Width="25" Background="{TemplateBinding Panel.Background}" BorderBrush="{TemplateBinding Border.BorderBrush}" RenderMouseOver="{TemplateBinding UIElement.IsMouseOver}" RenderPressed="{TemplateBinding ButtonBase.IsPressed}" IsChecked="{TemplateBinding ToggleButton.IsChecked}" IsRound="True" /> 
      </BulletDecorator.Bullet> 
      <ContentPresenter RecognizesAccessKey="True" Content="{TemplateBinding ContentControl.Content}" ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}" Margin="{TemplateBinding Control.Padding}" HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" /> 
     </BulletDecorator> 

     <ControlTemplate.Triggers> 

      <Trigger Property="ContentControl.HasContent"> 

       <Setter Property="FrameworkElement.FocusVisualStyle"> 

        <Setter.Value> 

         <Style TargetType="IFrameworkInputElement"> 

          <Style.Resources> 
           <ResourceDictionary /> 
          </Style.Resources> 

          <Setter Property="Control.Template"> 

           <Setter.Value> 

            <ControlTemplate> 
             <Rectangle Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2" Margin="14,0,0,0" SnapsToDevicePixels="True" /> 
            </ControlTemplate> 
           </Setter.Value> 
          </Setter> 
         </Style> 
        </Setter.Value> 
       </Setter> 

       <Setter Property="Control.Padding"> 

        <Setter.Value> 
         <Thickness>4,0,0,0</Thickness> 
        </Setter.Value> 
       </Setter> 

       <Trigger.Value> 
        <s:Boolean>True</s:Boolean> 
       </Trigger.Value> 
      </Trigger> 

      <Trigger Property="UIElement.IsEnabled"> 

       <Setter Property="TextElement.Foreground"> 

        <Setter.Value> 
         <DynamicResource ResourceKey="{x:Static SystemColors.GrayTextBrushKey}" /> 
        </Setter.Value> 
       </Setter> 

       <Trigger.Value> 
        <s:Boolean>False</s:Boolean> 
       </Trigger.Value> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 
+0

안녕하세요 > "BulletChrome"이라는 이름이 네임 스페이스 "clr-namespace : Microsoft.Windows.Themes; assembly = PresentationFramework.Aero"에 존재하지 않습니다. – Maslow

+0

프로젝트는 'PresentationFramework.Aero' 또는 https://msdn.microsoft.com/en-us/library/microsoft.windows.themes.bulletchrome(v에 정의 된'BulletChrome '을 정의하는 곳)에 대한 참조가 필요했습니다. = vs.110) .aspx – Maslow

0

단순히 무엇인가 등으로 개체를 변환하려고하는 것입니다를 해킹 의 더 ...

<RadioButton.RenderTransform> <CompositeTransform ScaleX="5" ScaleY="5"/> </RadioButton.RenderTransform> 

그냥 ScaleXScaleY 요구, 그렇지 않으면 객체 동일하게 기억 어색하게 늘어져 보일 것입니다

내 실험에 따르면이 렌더링은 전혀 엉망이되지 않습니다 (예 : 정렬 문제 등 없음)

관련 문제