Question Dimensionnement du bouton radio


J'ai des boutons radio dans une application qui fonctionne avec le toucher. Comme l'utilisateur final peut avoir des doigts épais, je veux que le cercle et le texte deviennent plus gros.

Le problème est que je ne peux que rendre le texte plus gros, pas le cercle dans le bouton radio.

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

Utiliser la hauteur ne fonctionne pas non plus. Cela rend le bouton radio plus gros, mais le cercle reste le même.

Tout indice ou réponse est apprécié.


13
2017-07-22 14:39


origine


Réponses:


Cela devrait fonctionner pour vous.

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

Une autre alternative consiste à écrire votre propre ControlTemplate pour RadioButton et à modifier son apparence comme vous le souhaitez.


24
2017-07-22 14:42



Pour ne redimensionner que le cercle, on peut utiliser RadioButton modèle et changement Width et Height de 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>

2
2018-05-06 07:08



Un plus d'un pirater serait d'essayer de transformer simplement l'objet avec quelque chose comme ...

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

Rappelez-vous juste que ScaleX et ScaleY doit être égal, sinon l'objet aura l'air maladroit

Selon mes propres expériences, le rendu de ces informations n’est pas du tout perturbé (par exemple, aucun problème d’alignement, etc.).


0
2018-01-08 18:39