从主窗体 (XAML) 中捕获用户控件上的 _multiple_tap 事件 [英] Capturing _multiple_ tap events on a usercontrol from a main form (XAML)

查看:23
本文介绍了从主窗体 (XAML) 中捕获用户控件上的 _multiple_tap 事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

关于昨天回答的这个问题:

In reference to this question that was answered yesterday:

如何从主窗体捕获用户控件中特定按钮上的点击事件

我现在面临的问题是我有一个仪表板"用户控件,所以现在我必须向同一个用户控件添加多个点击事件.

I am now facing the issue where I have a "dashboard" usercontrol, so now I have to add multiple tap events to the same user control.

发生的事情是似乎只有第一个点击事件被触发.

What's happening though is it seems that only the first tap event is firing.

帮助?

(第 03 页是有问题的那个)

(page 03 is the one in question)

主窗体:

public MainPage() {
        InitializeComponent();

        Page02.CloseButtonTapped += Page02_CloseButtonTapped;
        Page03.CloseButtonTapped += Page03_CloseButtonTapped;
        Page11.CloseButtonTapped += Page11_CloseButtonTapped;

        Page03.CommandControlTapped += Page03_CommandControlTapped;

    }

page03:

public delegate void CloseButtonTappedHandler(object sender, TappedRoutedEventArgs e);
public delegate void CommandControlTappedHandler(object sender, TappedRoutedEventArgs e);

public sealed partial class Page03 : UserControl {
    public event CloseButtonTappedHandler CloseButtonTapped;
    public event CommandControlTappedHandler CommandControlTapped;

    public Page03() {
        this.InitializeComponent();

        this.imgCloseButton.Tapped += new TappedEventHandler(this.imgCloseButton_Tapped);
        this.imgTraining.Tapped += new TappedEventHandler(this.imgTraining_Tapped);
        this.imgCommandControl.Tapped += new TappedEventHandler(this.imgCommandControl_Tapped);
    }

    private void imgCloseButton_Tapped(object sender, TappedRoutedEventArgs e) {
        if (CloseButtonTapped != null) {
            CloseButtonTapped(sender, e);
        }
    }

    private void imgCommandControl_Tapped(object sender, TappedRoutedEventArgs e) {
        if (CommandControlTapped != null) {
            CommandControlTapped(sender, e);
        }
    }

    private void imgTraining_Tapped(object sender, TappedRoutedEventArgs e) {
        if (CommandControlTapped != null) {
            CommandControlTapped(sender, e);
        }
    }
}

Page03 用户控件 XAML:(里面有一堆布局内容、线条形状等)

Page03 User Control XAML: (there's a bunch of layout stuff in there, line shapes, etc)

<UserControl
x:Class="Raytheon.Page03"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Raytheon"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="918"
d:DesignWidth="1818" Background="Gray">
<Grid>
    <Rectangle HorizontalAlignment="Left" Height="48" Margin="625,416,0,0" StrokeThickness="3" VerticalAlignment="Top" Width="557" Opacity="0.5">
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="1457.34" Margin="896.467,-53.724,0,-485.616" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Rectangle.RenderTransform>
            <CompositeTransform Rotation="-90" ScaleX="-1"/>
        </Rectangle.RenderTransform>
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="1457.345" Margin="896.467,-523.224,0,-16.121" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Rectangle.RenderTransform>
            <CompositeTransform Rotation="-90" ScaleX="-1"/>
        </Rectangle.RenderTransform>
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="478" Margin="396,201,0,0" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3">
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Image x:Name="image" HorizontalAlignment="Left" Height="72" Margin="665,404,0,0" VerticalAlignment="Top" Width="467" Source="Assets/1920x1080_TailoredSolutions.png"/>
    <Image x:Name="image1" HorizontalAlignment="Left" Height="69" Margin="126,296,0,0" VerticalAlignment="Top" Width="249" Source="Assets/1920x1080_Text_Training.png"/>
    <Rectangle HorizontalAlignment="Left" Height="228" Margin="506.55,325.193,0,0" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Rectangle.RenderTransform>
            <CompositeTransform Rotation="-90" ScaleX="-1"/>
        </Rectangle.RenderTransform>
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="478" Margin="1402,201,0,0" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3">
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="228" Margin="1291.55,325.193,0,0" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Rectangle.RenderTransform>
            <CompositeTransform Rotation="-90" ScaleX="-1"/>
        </Rectangle.RenderTransform>
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="214" Margin="1076,201,0,0" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3">
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="214" Margin="1076,466,0,0" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3">
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="214" Margin="731,201,0,0" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3">
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Rectangle HorizontalAlignment="Left" Height="214" Margin="731,466,0,0" VerticalAlignment="Top" Width="9" Opacity="0.5" StrokeThickness="3">
        <Rectangle.Fill>
            <SolidColorBrush Color="White" Opacity="0.85"/>
        </Rectangle.Fill>
    </Rectangle>
    <Image x:Name="imgCloseButton" HorizontalAlignment="Left" Height="111" Margin="1669,30,0,0" VerticalAlignment="Top" Width="111" Source="Assets/CloseButton.png" Tapped="imgCloseButton_Tapped"/>
    <Image x:Name="txtSustainment" HorizontalAlignment="Left" Height="69" Margin="439,296,0,0" VerticalAlignment="Top" Width="249" Source="Assets/1920x1080_Text_Sustainment.png"/>
    <Image x:Name="txtCommunicaton" HorizontalAlignment="Left" Height="69" Margin="1134,296,0,0" VerticalAlignment="Top" Width="249" Source="Assets/1920x1080_Text_Communications.png"/>
    <Image x:Name="txtFixedSensors" HorizontalAlignment="Left" Height="69" Margin="1438,296,0,0" VerticalAlignment="Top" Width="249" Source="Assets/1920x1080_Text_FixedSensors.png"/>
    <Image x:Name="txtPhysicalSecurity" HorizontalAlignment="Left" Height="86" Margin="1438,775,0,0" VerticalAlignment="Top" Width="270" Source="Assets/1920x1080_Text_PhysicalSecurity.png"/>
    <Image x:Name="txtPlatformUpgrades" HorizontalAlignment="Left" Height="88" Margin="1132,773,0,0" VerticalAlignment="Top" Width="279" Source="Assets/1920x1080_Text_PlatformUpgrades.png"/>
    <Image x:Name="txtDataAnalytics" HorizontalAlignment="Left" Height="88" Margin="783,773,0,0" VerticalAlignment="Top" Width="279" Source="Assets/1920x1080_Text_DataAnalytics.png"/>
    <Image x:Name="txtDistributedSensors" HorizontalAlignment="Left" Height="69" Margin="439,763,0,0" VerticalAlignment="Top" Width="249" Source="Assets/1920x1080_Text_DistributedSensors.png"/>
    <Image x:Name="txtMobileSensors" HorizontalAlignment="Left" Height="69" Margin="126,763,0,0" VerticalAlignment="Top" Width="249" Source="Assets/1920x1080_Text_MobileSensors.png"/>
    <Image x:Name="txtCommandControl" HorizontalAlignment="Left" Height="69" Margin="783,296,0,0" VerticalAlignment="Top" Width="249" Source="Assets/1920x1080_Text_CommandControl.png"/>

    <Image x:Name="imgTraining" HorizontalAlignment="Left" Height="224" Margin="128,94,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_Training.png" Tapped="imgTraining_Tapped"/>
    <Image x:Name="imgSustainment" HorizontalAlignment="Left" Height="224" Margin="441,94,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_Sustainment.png"/>
    <Image x:Name="imgCommunications" HorizontalAlignment="Left" Height="224" Margin="1136,94,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_Communications.png"/>
    <Image x:Name="imgMobileSensors" HorizontalAlignment="Left" Height="224" Margin="128,561,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_MobileSensors.png"/>
    <Image x:Name="imgDistributedSensors" HorizontalAlignment="Left" Height="224" Margin="441,561,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_DistributedSensors.png"/>
    <Image x:Name="imgDataAnalytics" HorizontalAlignment="Left" Height="224" Margin="785,561,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_DataAnalytics.png"/>
    <Image x:Name="imgPlatformUpgrades" HorizontalAlignment="Left" Height="224" Margin="1136,561,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_PlatformUpgrades.png"/>
    <Image x:Name="imgFixedSensors" HorizontalAlignment="Left" Height="224" Margin="1440,94,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_FixedSensors.png"/>
    <Image x:Name="imgPhysicalSecurity" HorizontalAlignment="Left" Height="224" Margin="1440,561,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_PhysicalSecurity.png"/>
    <Image x:Name="imgCommandControl" HorizontalAlignment="Left" Height="224" Margin="785,94,0,0" VerticalAlignment="Top" Width="234" Source="Assets/1920x1080_Icon_CommandControl.png"  Tapped="imgCommandControl_Tapped"/>
</Grid>
</UserControl>

推荐答案

我想通了.这是因为我显示/隐藏用户控件的方式是通过更改不透明度:

I figured it out. It's because how I'm showing/hiding the user controls is via changing the opacity:

<local:Page01 Margin="53,156,8,10" x:Name="Page01" />
    <local:Page02 Margin="53,156,8,30" x:Name="Page02" Opacity="0"/>
    <local:Page11 Margin="53,156,8,30" x:Name="Page11" Opacity="0"/>
    <local:Page03 Margin="53,156,8,30" x:Name="Page03" Opacity="0"/>

所以我交换了第 11 页和第 3 页的顺序,它开始工作了.因此,现在的任务是在保留故事板动画的同时显示/隐藏用户控件,而不是让它们实际上只是隐藏"而实际上使它们可见/折叠.

so I swapped the order of page 11 and page 3, and it started working. So now becomes the task of having to show/hide the user controls while retaining the storyboard animation, but not having them actually just "hidden" vs actually making them visible/collapsed.

这篇关于从主窗体 (XAML) 中捕获用户控件上的 _multiple_tap 事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆