【问题标题】:How to associate user control to Hover Button?如何将用户控件关联到悬停按钮?
【发布时间】:2013-10-23 01:42:19
【问题描述】:

我有以下用户控件

<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。

【问题讨论】:

    标签: c# xaml kinect


    【解决方案1】:

    首先说明一下,Kinect SDK 1.8 是最新版本,并且确实支持许多新功能。如果您可以更新到最新的 SDK,我建议您研究一下。其中的变化是您与按钮的交互方式——用更直观的“按下”动作替换“悬停”。

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

    KinectHoverButtonKinectButtonBase 的子类,而KinectButtonBase 又是常规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 非常接近(您必须稍微调整一下样式)。

    【讨论】:

    • 非常感谢,对我帮助很大!
    猜你喜欢
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 2012-01-13
    相关资源
    最近更新 更多