WPF在缩放大型场景时的表现

时间:2010-03-11 23:59:53

标签: wpf performance scaling

我有一个全屏应用,我希望能够放大某些区域。

我的代码运行正常,但我注意到当我靠近时,放大动画(在父画布上激活ScaleTransform.ScaleXScaleTransform.ScaleY属性的动画)开始猛然降临很少,帧率受到影响。

我没有使用任何BitmapEffects或任何东西,理想情况下我希望我的场景变得比现在更复杂。

场景非常大,1980x1024,这是一项要求,无法改变。

目前的布局是这样的:

<Canvas x:name="LayoutRoot">
  <Canvas x:Name="ContainerCanvas">
    <local:MyControl x:Name="c1" />
    <!-- numerous or ther controls and elements that compose the scene  -->
  </Canvas>
</Canvas>

放大的代码只是为ContainerCanvas的RenderTransform设置动画,然后在其中缩放其子项,从而产生所需的效果。

然而,我想知道我是否需要为ViewBox或类似的东西换掉ContainerCanvas?我以前在WPF中从未真正使用ViewBox / Viewport控件,他们甚至可以帮助我吗?

平滑缩放是客户的一项巨大要求,我必须解决这个问题。

欢迎所有想法

非常感谢

标记

1 个答案:

答案 0 :(得分:0)

我看到类似的问题需要缩放和平滑平移的双色调图像,但是需要消除锯齿以使屏幕观看可接受。

显然,这种抗锯齿可能会导致性能问题。您是否使用RenderOptions.SetBitmapScalingMode()来播放正在显示的图像对象? 如果是这样,您可能需要在缩放动画的速度/性能与渲染图像的质量之间进行权衡。

我想到的一个可能的解决方案,但还没有时间实现,将在动画期间切换到低质量的位图缩放模式,并在动画结束时切换回高质量。

相关问题