2015-10-09 5 views
0

Я пытаюсь использовать холст внутри формы окна и масштабировать и панорамировать этот холст для этого, прежде всего, я помещаю элемент-элемент, а затем помещаю в него холст, а затем помещаю рамку в холст, а затем пытаюсь увеличить холст я пробовал различные способы, но события каких-либо контроля не выполняется я также написал все события колеса мыши, но никто не будет выполнен так, пожалуйста, предложите мне решение ниже мой код для добавления элементов управления и колеса мыши событиесобытие колесика мыши не выполняется.

  elementHost1.Height = picVarify.Height; 
     elementHost1.Width = picVarify.Width; 
     elementHost1.Location = picVarify.Location; 
     touchcanvas = new System.Windows.Controls.Canvas(); 
     WindowsFormsHost hst = new WindowsFormsHost(); 
     hst.Name = "Host"; 
     hst.Child = picVarify; 
     hst.Height = picVarify.Height; 
     hst.Width = picVarify.Width; 
     touchcanvas.Height = picVarify.Height; 
     touchcanvas.Width = picVarify.Width; 
     touchcanvas.Children.Add(hst); 
     zm = new ZoomAndPan.ZoomAndPanControl(); 
     zm.Name = "zm"; 
     zm.Content = touchcanvas; 
     zm.MouseWheel += new System.Windows.Input.MouseWheelEventHandler(zoomAndPanControl_MouseWheel); 
     elementHost1.Child = zm; 
     touchcanvas.MouseWheel += new System.Windows.Input.MouseWheelEventHandler(touchcanvas_MouseWheel); 
     hst.MouseWheel += new System.Windows.Input.MouseWheelEventHandler(hst_MouseWheel); 
     picVarify.MouseWheel += new MouseEventHandler(picverify_MouseWheel); 
+1

для стрельбы событие колесика мыши на холсте вы должны установить его свойство Background попробовать этот фон = Brushes.Transparent; и дайте мне знать, это работа или нет? –

+0

все еще не стреляет – user3269550

ответ

0

вот код, который отлично работает для меня. Я добавил холст внутри холста и задал свойство фона обоих холстов.

XAML

<Window x:Class="WpfStack.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid x:Name="rootGrid" Margin="10,0,0.4,3.8"> 
    <Canvas Name="BaseCanvas" Background="AliceBlue" Margin="10,0,0,10"> 

    </Canvas> 
</Grid> 

Код

 public MainWindow() 
     { 
      InitializeComponent(); 
      Canvas touchcanvas = new System.Windows.Controls.Canvas(); 
      touchcanvas.Height =100; 
      touchcanvas.Width = 100; 
      touchcanvas.Background = Brushes.Transparent; 
      touchcanvas.MouseWheel += new System.Windows.Input.MouseWheelEventHandler(touchcanvas_MouseWheel); 
      BaseCanvas.Children.Add(touchcanvas); 
      BaseCanvas.Background = Brushes.Transparent; 

     } 

    public void touchcanvas_MouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs args) 
     { 
      args.Handled = true; 

     }