2013-05-21 39 views
0

問題1WPF覆蓋在畫布上縮放+不工作以及

我怎麼能不重寫刪除整個畫布內容的書面文本的文本? 我可以通過C#來做到嗎?在不添加XAML代碼中的元素的情況下?

問題2

我intergrated變焦功能,但它放大隻有當我指着我的畫布上繪製的東西。當我只指着我的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

爲了命中測試拿起鼠標輸入需要有光標下的目標元素的某些非空部分。在這種情況下,畫布的孩子們正在拾取事件並將其冒泡到Canvas,但Canvas本身只是空白區域,因此不會拾取鼠標輸入。通過在Canvas上設置Background="Transparent",您可以使整個事情可見,並進行測試。