gpt4 book ai didi

c# - WPF 图像转换

转载 作者:太空宇宙 更新时间:2023-11-03 11:38:59 24 4
gpt4 key购买 nike

我有一些简单的图形图像,我想在触发事件时对其进行转换。变换意味着改变宽度或将其移动到另一个位置。

现在我使用工具箱的图像元素和通过 Storyboard 的动画,例如 DoubleAnimation 或 ThicknessAnimation。

但是会出现以下问题:

  1. 改变宽度时图像会闪烁
  2. 图片质量参差不齐,WPF是否支持矢量图形?

关于1.我的问题是,是否应该使用其他动画。


所以我尝试了转换,查看代码:

    <Image Height="150" HorizontalAlignment="Left" Margin="12,0,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Source="images/side_view.jpg" Width="1244">
<Image.RenderTransform>
<ScaleTransform x:Name="Minimize" ScaleX="1.0" ScaleY="1.0"/>
</Image.RenderTransform>
</Image>

<Button Content="Next Train" Height="23" HorizontalAlignment="Left" Margin="528,233,0,0" Name="btnNext" VerticalAlignment="Top" Width="75" />
<Grid.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="btnNext">
<BeginStoryboard>
<Storyboard TargetName="Minimize" TargetProperty="ScaleX">
<DoubleAnimation To="0.65" Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>

与我应用于宽度和边距的动画效果相同。但是,它仍然闪烁!有什么合理的解释吗?

最佳答案

如果您正在为图像的宽度设置动画,那么您就是在让 WPF 重新渲染图像,并且每次都从 scatch 创建它。它经历了 Layout 过程和 Rendering 过程,这使得它闪烁并且无法发挥其应有的最佳效果。

此处最好的选择是为 ScaleTransform 设置动画。 ScaleTransform 完全通过 DirectX 在硬件中完成,因此速度极快,不会闪烁,并且图像质量应该在整个过程中保持几乎相同。 (当然除非你大幅调整它的大小,在这种情况下你会失去洞察力。)

关于c# - WPF 图像转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5298243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com