Ich habe eine Benutzersteuerung, die eine Ellipse enthält. Die Ellipse wird nach rechts transformiert, bis sie teilweise außerhalb ihres übergeordneten Steuerelements liegt.
Ich habe die Benutzersteuerung in die mittlere Spalte eines 3-Spalten-Rasters gesetzt.
Wenn ich die Spaltenbreite auf GridUnitType.Auto einstelle, kann ich sehen, dass die Ellipse die Spalte überfüllt. Wenn ich die Spaltenbreite auf GridUnitType.Star einstelle, läuft die Ellipse zwar immer noch über die Spalte hinaus, aber sie wird jetzt auf die Spaltenbreite abgeschnitten.
Ich muss die Spaltenbreiten mit GridUnitType.Star gleichmäßig verteilen, möchte aber nicht, dass transformierte Inhalte abgeschnitten werden.
Ich habe den Beispielcode unten eingefügt. Jede Hilfe würde geschätzt werden.
UserControl (enthält Ellipse)
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="GridWidthTest.UserControl1">
<Grid x:Name="LayoutRoot" Background="Green">
<Ellipse Fill="#FFF40404" Stroke="Black" Grid.Column="1" Width="400" Height="400" RenderTransformOrigin="0.5,0.5">
<Ellipse.RenderTransform>
<TransformGroup>
<TranslateTransform X="200"/>
</TransformGroup>
</Ellipse.RenderTransform>
</Ellipse>
</Grid>
Übergeordnetes Steuerelement (enthält das Gitter)
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:GridWidthTest" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Class="GridWidthTest.MainPage"
Width="640" Height="480" mc:Ignorable="d">
<Grid x:Name="LayoutRoot" Background="White">
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<local:UserControl1 Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
</Grid>
</Grid>