2011-01-13 1 views
0

J'ai une toile appelée "drawCanvas" pour montrer les images et inkcanvas qui est contenue dans la toile appelée "CanvasContainInkCanvas". Je peux faire un zoom arrière en utilisant MatrixTransform.Comment faire pour voir l'image hors de inkcanvas

//Get the image that's being manipulation. 
Canvas element = (Canvas)e.Source; 
//Ues the matrix of the transform to manipulation the element's appearance. 
Matrix matrix = ((MatrixTransform)drawCanvas.RenderTransform).Matrix; 
//Get the ManipulationDelta object. 
ManipulationDelta deltaManipulation = e.DeltaManipulation; 
//Find the old center, and apply any previous manipulations. 
Point center = new Point(element.ActualWidth/2, element.ActualHeight/2); 
//Apply new move manipulation (if it exists). 
center = matrix.Transform(center); 
//Apply new zoom manipulation (if it exists). 
matrix.ScaleAt(deltaManipulation.Scale.X, deltaManipulation.Scale.Y, center.X, center.Y); 
//Translation (pan) 
matrix.Translate(e.DeltaManipulation.Translation.X, e.DeltaManipulation.Translation.Y); 
//Set the final matrix. 
((MatrixTransform)drawCanvas.RenderTransform).Matrix = matrix; 
// set the matrix of canvas that contain inkcanvas 
((MatrixTransform)CanvasContainInkCanvas.RenderTransform).Matrix = matrix; 

Si je fais un zoom arrière, je peux voir des images hors toile. alt text

Je veux copier des images de canvas à inkcanvas pour utiliser la sélection. Mon problème est que les images ne peuvent pas être montrées en dehors de inkcanvas.

alt text

Comment afficher des images en dehors InkCanvas?

Merci

Mise à jour: Comment puis-je utiliser la sélection en dehors InkCanvas?

Répondre

2

Définissez ClipToBounds="False" sur ce InkCanvas. Par défaut, il est défini sur True.

+0

Ok, je peux montrer des images maintenant mais j'ai un nouveau problème. Comment utiliser la sélection en dehors d'inkcanvas? –

+0

Que voulez-vous dire par 'Selection outside InkCanvas'? – decyclone