我想將 oa 圓形影片化為正方形。與我們在 Flash 影片時間中所做的相同,但在 WPF 中。我愿意接受有關如何處理它的任何建議。我確實有最終形狀和初始形狀的路徑資料,但找不到任何相關資訊。
我的谷歌搜索只進入沿路徑影片形式的方向。這不是我想要的,我希望我的物件保持靜止,但將其輪廓從圓形更改為方形。
uj5u.com熱心網友回復:
您可以像這樣為 Rectangle的RadiusX和屬性設定影片:RadiusY
<Rectangle Width="100" Height="100" RadiusX="50" RadiusY="50"
Stroke="Red" StrokeThickness="3">
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard BeginTime="0:0:2">
<DoubleAnimation
Storyboard.TargetProperty="RadiusX"
To="0" Duration="0:0:2"/>
<DoubleAnimation
Storyboard.TargetProperty="RadiusY"
To="0" Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
或者,CornerRadius使用自定義影片為 Border 設定影片:
<Border Width="100" Height="100" CornerRadius="50"
BorderBrush="Red" BorderThickness="3">
<Border.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard BeginTime="0:0:2">
<local:CornerRadiusAnimation
Storyboard.TargetProperty="CornerRadius"
To="0" Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
</Border>
CornerRadius影片:
public class CornerRadiusAnimation : AnimationTimeline
{
public CornerRadius To { get; set; }
public override Type TargetPropertyType
{
get { return typeof(CornerRadius); }
}
protected override Freezable CreateInstanceCore()
{
return new CornerRadiusAnimation { To = To };
}
public override object GetCurrentValue(object defaultOriginValue, object defaultDestinationValue, AnimationClock animationClock)
{
if (!animationClock.CurrentProgress.HasValue)
{
return defaultOriginValue;
}
var p = animationClock.CurrentProgress.Value;
var from = (CornerRadius)defaultOriginValue;
return new CornerRadius(
(1 - p) * from.TopLeft p * To.TopLeft,
(1 - p) * from.TopRight p * To.TopRight,
(1 - p) * from.BottomRight p * To.BottomRight,
(1 - p) * from.BottomLeft p * To.BottomLeft);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/431362.html
下一篇:型別的代數
