J'ai ce CustomControl qui contient un InkPresenter
et un Image
. L'image a un AdornerDecorator
que je prévois d'ajouter un adorner à l'image plus tard. J'ai placé le Canvas.ZIndex
du Image
pour être plus haut que le InkPresenter
de sorte que le InkPresenter
soit dessiné au-dessus de l'image.Ordre Z entre Image et InkPresenter
Le problème est que lorsque j'essaie de collecter et d'afficher de l'encre à partir du InkPresenter
, les traits sont dessinés sous l'image. (J'ai utilisé pour vérifier l'arbre visuel en utilisant Snoop et le InkPresenter
est au-dessus du Image
) Je ne sais pas pourquoi c'est. Est-ce que quelqu'un ici sait pourquoi le Image
est dessiné sur le InkPresenter
? Toute aide est très appréciée.
Mon code est le suivant:
generic.xaml
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:HotSpotImage">
<Style TargetType="{x:Type local:HotSpotImage}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:HotSpotImage}">
<ControlTemplate.Resources>
<local:StringtoImageSource x:Key="ImageSourceConverter"/>
</ControlTemplate.Resources>
<Canvas Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}">
<InkPresenter Canvas.ZIndex="1"
x:Name="PART_InkPresenter"
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"/>
<Image Canvas.ZIndex="2" x:Name="PART_Image"
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}" Source="{Binding
RelativeSource={RelativeSource TemplatedParent},
Path=Source,
Converter={StaticResource ImageSourceConverter}}"/>
</Canvas>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Je joins les MouseDown
, MouseUp
, MouseMove
événements etc à la InkPresenter
que je prévois de déplacer la manipulation de ces événements à d'autres classes plus tard.
Malheureusement, ces événements ne sont pas capturés car le Image
est dessiné au-dessus du InkPresenter
afin qu'il obtienne les événements plutôt que le InkPresenter
. Est-ce que quelqu'un sait pourquoi cela peut être?
Toute aide est très appréciée.
merci: D J'ai toujours eu que l'inverse ...: S – Nilu