如何使ContentControl捕获鼠标事件?

时间:2012-07-23 03:56:33

标签: .net wpf user-controls mouseevent contentcontrol

如果我设置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>

这不是我想要的,但总比没有好......

2 个答案:

答案 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>

我希望这会有所帮助。