2013-07-22 5 views
13

का आकार बदलना मेरे पास एक ऐप में कुछ रेडियोधन हैं जो स्पर्श के साथ काम करते हैं। क्योंकि अंतिम उपयोगकर्ता में मोटी उंगलियां हो सकती हैं, इसलिए मैं सर्कल और टेक्स्ट int को रेडियोबुटन बड़ा बनाना चाहता हूं।रेडियोबूटन

समस्या यह है कि, मैं केवल पाठ को बड़ा कर सकता हूं, न कि रेडियोबटन में सर्कल।

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

ऊंचाई का उपयोग या तो काम नहीं करता है। यह रेडियोधर्टर को बड़ा बनाता है, लेकिन सर्कल वही रहता है।

किसी भी संकेत या उत्तर की सराहना की जाती है।

+0

इसे व्यूबॉक्स में उपयोग करें और इसकी ऊंचाई – whoisthis

+0

+1 को दुनिया की मोटी उंगलियों के बारे में सोचने के लिए बदलें! –

उत्तर

23

यह आपके लिए काम करना चाहिए।

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

दूसरा विकल्प रेडियोबटन के लिए अपना स्वयं का नियंत्रण टेम्पलेट लिखना और अपनी उपस्थिति को बदलना है।

+0

ठीक काम करता है, धन्यवाद! जब भी मैं इसे लागू करता हूं, –

+0

किसी भी कारण से, यह रेडियोधर्टन के संरेखण को – Maslow

+0

बहुत खराब करता है! कस्टम टेम्पलेट बनाने के बजाय यह एक त्वरित और आसान समाधान है – t4taurus

2

केवल सर्कल का आकार बदलने के लिए, RadioButton टेम्पलेट का उपयोग कर सकते हैं और Width और BulletChrome बदल सकते हैं।

<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

मुझे > नाम "बुलेट क्रोम" नामस्थान में मौजूद नहीं है "clr-namespace: Microsoft.Windows.Themes; assembly = PresentationFramework.Aero"। – Maslow

+0

कि प्रोजेक्ट को 'प्रेजेंटेशनफ्रेमवर्क.एरो' या किसी भी स्थान पर संदर्भित करने की आवश्यकता है जो 'बुलेट क्रोम' को परिभाषित करता है जैसा कि https://msdn.microsoft.com/en-us/library/microsoft.windows.themes.bulletchrome(v में परिभाषित किया गया है = vs.110) .aspx – Maslow

0

एक का एक और अधिक हैक बस कुछ तरह के साथ वस्तु को बदलने के लिए प्रयास करने के लिए किया जाएगा ...

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

बस याद रखें कि ScaleX और ScaleY जरूरत है, बराबर हो अन्यथा वस्तु अजीब रूप से

अपने स्वयं के प्रयोग के अनुसार, इसका प्रतिपादन बिल्कुल गड़बड़ नहीं हुआ है (उदाहरण के लिए कोई संरेखण समस्या नहीं है)

संबंधित मुद्दे