如果我设置ContentControl的宽度和高度,它不会捕获鼠标事件,因为eaxemple mouseleftclick事件。是否有允许我这样做的财产?
<Border Width="19" Height="19" BorderBrush="Gray" BorderThickness="1" MouseDown="OnLayerEditedMouseDown">
<ContentControl Width="19" Height="19">
<Image
Width="16"
Height="16"
Source="../../Resources/Images/LayersViewer/pencil2.png"
Visibility="{Binding IsEdited, Converter={StaticResource BoolToVisibility}}">
</Image>
</ContentControl>
</Border>
如果现在可见,我可以捕捉边框和图像上的事件。如果contentcontrol没有任何可见内容,它不会捕获任何事件的主要问题。我可以将内容控件作为可视树的一部分,或者我必须以任何方式放入内容(例如空图像)?
我已通过此解决方案解决了问题:
<Grid Margin="0">
<Image
Width="16"
Height="16"
Source="../../Resources/Images/LayersViewer/eye.png"
Visibility="{Binding IsVisible, Converter={StaticResource BoolToVisibility}}"
Panel.ZIndex="1"
>
</Image>
<Image
Width="16"
Height="16"
Source="../../Resources/Images/LayersViewer/empty.png"
Panel.ZIndex="0"
>
</Image>
</Grid>
这不是我想要的,但总比没有好......
答案 0 :(得分:0)
嗨试试这个及其工作
<ContentControl Width="19" Height="19">
<ContentControl.Content>
<Image
Width="16"
Height="16"
Source="../../Resources/Images/LayersViewer/pencil2.png"
Visibility="{Binding IsEdited, Converter={StaticResource BoolToVisibility}}">
</Image>
</ContentControl.Content>
</ContentControl>
我希望这会有所帮助。
答案 1 :(得分:0)
<ContentControl Width="200" Height="200" Background="Black" MouseLeftButtonDown="ContentControl_MouseLeftButtonDown">
<ContentControl.Content>
<Border Width="16" Height="16" Background="White">
<Image
Source="../../Resources/Images/LayersViewer/pencil2.png"
Visibility="{Binding IsEdited, Converter={StaticResource BoolToVisibility}}">
</Image>
</Border>
</ContentControl.Content>
</ContentControl>
我希望这会有所帮助。