MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit

oversize canvas cause radiabutton path render as oval

Ouverte
#904 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug up-for-grabs
Langage dominant
C#
Étoiles
16.3k
Forks
3.5k
Merge moyen
1 j 22 h
PR mergées (30 j)
8

Description

In MaterialDesignTheme.RaidoButton.xaml file, the canvas is large than viewbox, it will cause multi radio button look like oval, not circle.

three radio in uniform grid with 3 columns
three radio in uniform grid with 3 columns

                        <Viewbox Width="18" Height="18"  VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
                            <Canvas Width="24" Height="24">
                                <Path x:Name="Graphic"
                                      Data="M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" 
                                      Fill="{DynamicResource MaterialDesignCheckBoxOff}" />
                                <Ellipse x:Name="InteractionEllipse" Fill="{TemplateBinding Foreground}" Width="0" Height="0" Canvas.Top="12" Canvas.Left="12" Opacity="0" RenderTransformOrigin="0.5,0.5" >
                                    <Ellipse.RenderTransform>
                                        <TransformGroup>
                                            <ScaleTransform/>
                                            <SkewTransform/>
                                            <RotateTransform/>
                                            <TranslateTransform/>
                                        </TransformGroup>
                                    </Ellipse.RenderTransform>
                                </Ellipse>
                            </Canvas>
                        </Viewbox>

I wonder if there a easy way to fix it, such as just changing some property like uselayoutround.
However, it's not working.
Another way is change all canvas size to fix size 18*18, but it will not work properly in large radio button.
So, I think that replacing canvas to grid with 2 ellipse maybe a solution(just do as MahApps.Metro).

ref:

                        <Grid x:Name="PART_CHECKBOX">
                            <Rectangle Margin="-6 0" Fill="{DynamicResource TransparentWhiteBrush}" />
                            <Ellipse x:Name="normal"
                                     Width="18"
                                     Height="18"
                                     Fill="{TemplateBinding Background}"
                                     Stroke="{TemplateBinding BorderBrush}"
                                     StrokeThickness="{TemplateBinding BorderThickness}" />
                            <Ellipse x:Name="Checked1"
                                     Width="10"
                                     Height="10"
                                     Fill="{DynamicResource HighlightBrush}"
                                     Opacity="0" />
                            <Ellipse x:Name="disabled"
                                     Width="18"
                                     Height="18"
                                     Fill="{DynamicResource SemiTransparentWhiteBrush}"
                                     Opacity="0"
                                     StrokeThickness="{TemplateBinding BorderThickness}" />
                        </Grid>

Regards.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez dans MaterialDesignTheme.RaidoButton.xaml et examinez le dimensionnement de Viewbox et Canvas autour des tracés Graphic et InteractionEllipse. Reproduisez l’exemple d’un UniformGrid avec trois boutons radio, puis comparez le rendu avec différentes tailles de boutons radio. Le travail est terminé lorsque les tracés radio restent circulaires plutôt qu’ovales dans la disposition signalée et avec des contrôles plus grands.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Domaine
design, desktop
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.