首页 > 解决方案 > 在 UWP 中应用 TranslateTransform 时,外部渲染的折线段不显示

问题描述

我正在绘制折线形状,并且可以在 UWP 的窗口外渲染点。在这种情况下,我将使用 TranslateTransform 平移折线以进行折线段。应用 TranslateTransform 时,段移动,但外部渲染线被截断。因为我有超过 15k 的点,所以每次鼠标移动时我都不能重绘折线。所以我在鼠标移动时设置了 TranslateTransform。

为了简单地重现此问题,我创建了示例,当您单击折线段时,我设置了 TranslateTransform。但是,外部渲染的折线不显示。

我的代码

<Grid x:Name="grid" PointerPressed="grid_PointerPressed" >
    <Polyline x:Name="polyline" StrokeThickness="10" Stroke="Red" Points="200,250 2500,250">
        <Polyline.RenderTransform>
            <TranslateTransform x:Name="transform"/>
        </Polyline.RenderTransform>
    </Polyline>
</Grid>

C#:

私人无效grid_PointerPressed(对象发送者,PointerRoutedEventArgs e){ this.transform.X += -50; }

示例链接:折线

请让我知道我做错了什么。平移时如何显示外部渲染的折线段?

谢谢,

婆罗地。

标签: c#xamluwp

解决方案


只需将折线包裹在画布中。

<Grid x:Name="grid" PointerPressed="grid_PointerPressed" >
    <Canvas>
        <Polyline x:Name="polyline" StrokeThickness="10" Stroke="Red" Points="200,250 2500,250">
            <Polyline.RenderTransform>
                <TranslateTransform x:Name="transform"/>
            </Polyline.RenderTransform>
       </Polyline>
    </Canvas>
</Grid>

推荐阅读