如何将用户控件关联到悬停按钮

本文关键字:悬停 按钮 关联 控件 用户 | 更新日期: 2023-09-27 18:36:25

我有以下用户控件

<UserControl x:Class="Kimect.Controls.ElementControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:Kimect"
             mc:Ignorable="d" Width="50" Height="50" SizeChanged="UserControl_SizeChanged">
    <Grid Name="mainGrid" MouseLeftButtonUp="element_MouseLeftButtonUp" Style="{StaticResource elementGrid}" >                
        <TextBlock Name="Number" Text="1" FontSize="15"  Margin="0 0 2 0" 
                   HorizontalAlignment="Right" VerticalAlignment="Top" />
        <TextBlock Name="symbol" Text="H"  FontSize="20"
                   HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
</UserControl>

现在我想用 Kinect 点击它。我已经研究并找到了 KinectHoverButton.cs,但我不知道如何将用户控件与 HoverButton 相关联。我使用的是 Kinect SDK 1.7。

如何将用户控件关联到悬停按钮

首先要注意的是,Kinect SDK 1.8 是最新版本,确实支持许多新功能。 如果您可以更新到最新的SDK,我建议您进行研究。 其中的变化是你与按钮的交互方式——用更直观的"按下"动作取代"悬停"。

对于您的KinectHoverButton,我假设您使用的是"ControlBasics-WPF"示例中的那个。

KinectHoverButtonKinectButtonBase的子类,而是正ButtonBase类的子类。 以下是指向 MSDN 上的ButtonBase类的链接:http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.buttonbase(v=vs.95).aspx

最后,从上面的链接中,您会注意到ButtonBaseContentControl的子类:

public abstract class ButtonBase : ContentControl

。你可以把(几乎)任何东西放在ContentControl里面.

你不会想把你的UserControl撞到KinectHoverButton. 相反,您希望创建一个看起来像您的UserControlKinectHoverButton,并且在使用手势环境时的行为应该如此。 如果要重用,可以创建仅包含单个KinectHoverButtonUserControl

举个简单的例子:

<KinectHoverButton>
  <Grid>                
    <TextBlock Name="Number" Text="1" FontSize="15"  Margin="0 0 2 0" 
               HorizontalAlignment="Right" VerticalAlignment="Top" />
    <TextBlock Name="symbol" Text="H"  FontSize="20"
               HorizontalAlignment="Center" VerticalAlignment="Center" />
  </Grid>
</KinectHoverButton>

。将创建一个启用 Kinect 的按钮,该按钮看起来非常接近您现有的UserControl(您必须稍微玩一下样式)。