参考昨天回答的这个问题:
How to capture tap event on specific button in user control from main form
我现在面临的问题是我有一个"仪表板" usercontrol,所以现在我必须向同一个用户控件添加多个tap事件。
发生的事情似乎只是第一次敲击事件正在开始。
帮助?
(第03页是有问题的一个)
的MainForm:
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 :(那里有一堆布局内容,线条形状等)
<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>
答案 0 :(得分:0)
您需要在MainPage中单独注册Page03上的事件,而不是为它们创建新的处理程序。见下文
Page03.CloseButtonTapped += MethodToHandleEvent
Page03.Page11Tapped += MethodToHandleEvent
调用AddHandler的行正在为事件注册新的处理程序,我认为这会引起一些混乱。您可以在此处阅读更多有关事件的信息:https://msdn.microsoft.com/en-us/library/ms742806(v=vs.100).aspx
答案 1 :(得分:0)
我明白了。这是因为我显示/隐藏用户控件的方式是改变不透明度:
<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页的顺序,它开始工作了。所以现在变成了在保留故事板动画的同时显示/隐藏用户控件的任务,但实际上并没有让它们隐藏&#34; vs实际上使它们可见/崩溃。