MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit
oversize canvas cause radiabutton path render as oval
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 16.3k
- Forks
- 3.5k
- Ø Merge
- 1 T. 22 Std.
- Gemergte PRs (30 T.)
- 8
Beschreibung
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
<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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in MaterialDesignTheme.RaidoButton.xaml und untersuche die Viewbox- und Canvas-Größenanpassung rund um die Graphic- und InteractionEllipse-Pfade. Reproduziere das Beispiel eines UniformGrid mit drei RadioButtons und vergleiche anschließend die Darstellung bei unterschiedlichen RadioButton-Größen. Als abgeschlossen gilt die Aufgabe, wenn die Radio-Pfade im gemeldeten Layout und bei größeren Steuerelementen kreisförmig statt oval bleiben.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Bereich
- design, desktop
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100
