나는 그리드에서 "팝업"이라는 이름의 "ContentPanelCanvas"라는 이름의 캔버스에서 서명을 가져오고 "팝업"에서 해당 서명을 설정하고 이름이 지정된 캔버스에 설정하는 간단한 캔버스 응용 프로그램을 만들고 있습니다. "maincanvas"로. 알고 있다면이 문제를 해결하도록 도와주세요. 캔버스 컨텍스트를 가져 와서 빈 캔버스로 설정하는 방법은 다음과 같습니다.
Xaml에서 :
<Grid x:Name="ContentPanel">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Canvas Name="maincanvas">
</Canvas>
</Grid>
<Grid Name="Popup" Visibility="Collapsed" Grid.Row="0" Width="480" Height="300" Background="Black">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Canvas Name="ContentPanelCanvas" Background="Beige">
</Canvas>
</Grid>
<Grid Grid.Row="1" HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" x:Name="btnOK" Content="OK" Tap="btnOK_Tap"/>
<Button Grid.Column="1" x:Name="btnCancel" Content="Clear" Tap="btnCancel_Tap"/>
</Grid>
</Grid>
</Grid>
다음은 .CS 파일입니다.
private Point currentPoint;
private Point oldPoint;
Line line;
public SingleImage()
{
InitializeComponent();
this.ContentPanelCanvas.MouseMove += new MouseEventHandler(ContentPanelCanvas_MouseMove);
this.ContentPanelCanvas.MouseLeftButtonDown += new MouseButtonEventHandler(ContentPanelCanvas_MouseLeftButtonDown);
}
void ContentPanelCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
currentPoint = e.GetPosition(ContentPanelCanvas);
oldPoint = currentPoint;
}
void ContentPanelCanvas_MouseMove(object sender, MouseEventArgs e)
{
currentPoint = e.GetPosition(this.ContentPanelCanvas);
line = new Line() { X1 = currentPoint.X, Y1 = currentPoint.Y, X2 = oldPoint.X, Y2 = oldPoint.Y };
line.Stroke = new SolidColorBrush(Colors.Purple);
line.StrokeThickness = 3;
this.ContentPanelCanvas.Children.Add(line);
oldPoint = currentPoint;
}
private void Button_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
Popup.Visibility = Visibility.Visible;
ContentPanelCanvas.Children.Clear();
}
private void btnOK_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
Popup.Visibility = Visibility.Collapsed;
// Here i want to set signature to main canvas how to pass signature
from one canvas to another?//
}
private void btnCancel_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
ContentPanelCanvas.Children.Clear();
}
private void btnOK_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
Popup.Visibility = Visibility.Collapsed;
int k = ContentPanelCanvas.Children.Count;
for (int i = 0; i < k; i++)
{
line =(System.Windows.Shapes.Line) ContentPanelCanvas.Children[0];
line.StrokeThickness = 3;
ContentPanelCanvas.Children.RemoveAt(0);
maincanvas.Children.Add(line);
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다