Ich habe ein Rectangle
Path
und ein durch ein RectangleGeometry
definiert:Wie wird ein rechteckiger Pfad dynamisch mit der Stärke des animierten Strichs bemaßt?
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Stroke="Red" Width="{Binding RctWidth}"/>
<Path Grid.Row="1" Stroke="Red">
<Path.Data>
<RectangleGeometry Rect="0,0,50,10"/>
</Path.Data>
<Path.Triggers>
<EventTrigger RoutedEvent="Path.Loaded">
<BeginStoryboard>
<Storyboard TargetProperty="StrokeThickness">
<DoubleAnimation RepeatBehavior="Forever" From="1" To="3" Duration="0:0:0.5"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Path.Triggers>
</Path>
</Grid>
Das Rechteck ändert seine Breite dynamisch an die Bindung nach. Die rechteckige Path
hat eine Animation auf seine StrokeThickness
angewendet. Ich möchte die rechteckige Path
genau dieses Rechteck in der Größe, aber in einer solchen Weise, dass die Strichstärke Animation nicht beeinflussen, dass (der dickere Strich sollte die Path
tatsächlich ein bisschen größer als die Rectangle
machen - das ist das beabsichtigte Verhalten).
Wie kann ich das tun?
Beachten Sie, dass ich die Stretch="Fill"
Eigenschaft auf der Path
nicht verwenden kann. In diesem Fall wird die Strichstärke nur innerhalb der Grenzen wachsen, aber ich möchte das Standardverhalten von Strichs sowohl in der inneren als auch in der äußeren Richtung beibehalten.
Desweiteren kann ich das Ansichtsmodell, an das die Breite Rectangle
gebunden ist, nicht ändern. Es ist eine externe Komponente, die ich nicht ändern darf.
Ich könnte tatsächlich Rectangle
loswerden. Das Wichtigste für mich ist die Path
und ihre dynamisch wechselnde Breite.
Sie können 'Path.Data' an eine Eigenschaft in Ihrem Ansichtsmodell binden. Jedes Mal, wenn sich 'RctWidth' ändert, können Sie eine neue' RectangleGeometry' erstellen und dieser Eigenschaft zuweisen. –
@ YusufTarıkGünaydın, wenn das Leben so einfach wäre ... Leider kann ich das Ansichtsmodell nicht berühren, weil es eine externe Komponente ist. Ich suche entweder nach einem reinen XAML-Weg oder nach einigen angehängten Eigenschaften/Verhaltensweisen/was auch immer. – dymanoid
Vielleicht können Sie negative Ränder hinzufügen, die Wirkung der erhöhten Dicke ... – grek40