Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含按钮的Silverlight InkPresenter_Silverlight_Windows Phone 7 - Fatal编程技术网

包含按钮的Silverlight InkPresenter

包含按钮的Silverlight InkPresenter,silverlight,windows-phone-7,Silverlight,Windows Phone 7,我有一个InkPresenter,我在上面添加了一个按钮 <StackPanel x:Name="SignStackPanel"> <InkPresenter x:Name="SighCanvas" Background="White" Height="346"> <Button Canvas.Left="6" Canvas.Top="275" Content="Button"

我有一个
InkPresenter
,我在上面添加了一个按钮

  <StackPanel x:Name="SignStackPanel">
        <InkPresenter  x:Name="SighCanvas" Background="White"  Height="346">
            <Button Canvas.Left="6" Canvas.Top="275" Content="Button" 
                    Height="71" Name="Clear" Width="160" Background="#FF9D9D9D" 
                    Click="Clear_Click" />
        </InkPresenter >
  </StackPanel>
我正在尝试创建一个简单的绘画应用程序。当我在
InkPresenter
上绘制某样东西时,如果我将其拖动到按钮上,我的笔划将显示在按钮上


如何防止笔划出现在按钮上?

为什么要将按钮放在InkPresenter中?将XAML中的按钮定义移到InkPresenter外部,但移到StackPanel内部,事情应该按照您的要求进行。我的设计就像,我的按钮位于InkPresenter的中心。如果我将按钮移到inkPresenter外部,但移到StackPanel内部,它将不会位于inkPresenter的中心。但为什么需要将按钮置于中心?由于该按钮的单击处理程序名为Clear\u click,因此我假设该按钮用于清除
InkPresenter
。似乎有一个按钮来清除画在绘画表面中间的绘画表面,我从未尝试过。但是您可以尝试将按钮放在
画布中
,并将画布的
ZIndex
属性设置为高于0的值。我不知道为什么会有它,但我有设计约束。
    private Point currentPoint;
    private Point oldPoint;

    void SighCanvas_MouseMove(object sender, MouseEventArgs e)
    {

        currentPoint = e.GetPosition(this.SighCanvas);

        Line line = new Line() { 
          X1 = currentPoint.X, 
          Y1 = currentPoint.Y, 
          X2 = oldPoint.X, 
          Y2 = oldPoint.Y 
       };
       line.Stroke = new SolidColorBrush(Colors.Purple);
       line.StrokeThickness = 4;

       this.SighCanvas.Children.Add(line);
       oldPoint = currentPoint;
    }

    void SighCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        currentPoint = e.GetPosition(SighCanvas);
        oldPoint = currentPoint;
    }