2016-10-05 5 views

Répondre

0

Après des heures d'essayer et d'erreurs, c'est ce que j'ai mais je ne pouvais pas obtenir l'affichage de la règle dans une direction diagonale.

private void ResizeInkRuler() { 
    var viewBoxWidth = ImageViewBox.ActualWidth; 
    var viewBoxHeight = ImageViewBox.ActualHeight; 
    var widthIsGreater = viewBoxWidth.CompareTo(viewBoxHeight) > 0; 

    var scaleFactor = widthIsGreater ? InkImage.ActualWidth/viewBoxWidth : InkImage.ActualHeight/viewBoxHeight; 
    var length = widthIsGreater ? viewBoxWidth : viewBoxHeight; 
    ruler.Transform = Matrix3x2.CreateScale((float) scaleFactor); 
    ruler.Length = length; 
} 
0

Pourriez-vous préciser comment exactement la règle ne s'affiche pas correctement pour vous (peut-être fournir une capture d'écran et un extrait XAML)? J'ai fait une démo rapide de votre scénario et la règle s'affiche correctement pour moi (tout est agrandi de 200% comme prévu).

<Grid Background="Black"> 
    <Viewbox Width="600" Height="600"> 
     <Grid Width="300" Height="300" Background="White"> 
      <InkCanvas x:Name="inkCanvas"/> 
      <InkToolbar TargetInkCanvas="{x:Bind inkCanvas}" VerticalAlignment="Top"/> 
     </Grid> 
    </Viewbox> 
</Grid> 

InkCanvas screenshot

+0

Merci Décennie, savez-vous comment je peux redimensionner à sa taille d'origine? – Jennifer