问题1
如何在不删除整个画布内容的情况下覆盖书面文本?
我能在C#
上做到吗?没有在XAML
代码中添加元素?
问题2
我集成了缩放功能,但只有在我指向画布上绘制的内容时才会缩放。当我只是指向Canvas
时,我怎么才能缩放?
XAML
<Canvas x:Name="coordinateSystemBackground" VerticalAlignment="Top" Cursor="Cross" MouseWheel="coordinateSystemBackground_MouseWheel" RenderTransformOrigin="0.688,0.559" Width="1200" Height="720">
<ScrollViewer Grid.Column="0" Grid.Row="0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Width="1200" Height="750">
<Canvas x:Name="coordinateSystem" HorizontalAlignment="Left" VerticalAlignment="Top" Cursor="Cross" UseLayoutRounding="False" Canvas.Left="0" Width="1200" Height="720">
<Canvas.RenderTransform>
<ScaleTransform x:Name="st"/>
</Canvas.RenderTransform>
</Canvas>
</ScrollViewer>
</Canvas>
My Zoom function
private void coordinateSystemBackground_MouseWheel(object sender, MouseWheelEventArgs e)
{
// Skalierungsfaktor
double ScaleRate = 1.1;
//Transformiert gesamte Canvas...
if (e.Delta > 0)
{
st.ScaleX *= ScaleRate;
st.ScaleY *= ScaleRate;
labZoomFaktor.Content = (int)((st.ScaleX * 100) - 100) + " %";
}
else
{
st.ScaleX /= ScaleRate;
st.ScaleY /= ScaleRate;
labZoomFaktor.Content = (int)((st.ScaleX * 100) - 100) + " %";
}
}
答案 0 :(得分:0)
为了使命中测试能够获取鼠标输入,需要在光标下有一些非空零部分的目标元素。在这种情况下,画布的子项正在拾取事件并将它们冒泡到Canvas
,但Canvas
本身只是空白空间,因此不会拾取鼠标输入。通过在Background="Transparent"
上设置Canvas
,您可以使整个内容可见,以便进行测试。