在我的Windows Phone 8应用程序中,我使用一个usercontrol在所有页面中显示。 UserControl XAML代码:
<Canvas x:Name="ExpiryPopUp_Container" Margin="0,0,0,0" Background="Transparent" Width="Auto" Height="Auto">
<Border x:Name="Delete" Background="#FFFFFFFF" CornerRadius="10,10,10,10" BorderBrush="#8ca5b9" BorderThickness="2" Height="180" Canvas.Left="58" Canvas.Top="320" Grid.Row="1" Width="360">
<Canvas>
<Border Background="{StaticResource LeftNavBackground}" Height="50" CornerRadius="10,10,0,0" Width="356">
<TextBlock FontSize="26" TextAlignment="Center" FontFamily="/Assets/Fonts/OpenSans-Regular.ttf#Open Sans Regular" Text="Alert" Width="356" Canvas.Top="10" Height="28"/>
</Border>
<TextBlock Text="Oops! Something went wrong with network connection" TextWrapping="Wrap" FontSize="22" FontFamily="/Assets/Fonts/OpenSans-Regular.ttf#Open Sans Regular" TextAlignment="Center" Foreground="{StaticResource BlueText}" Canvas.Top="62" Width="356"/>
<Border x:Name="BorderOk" Background="{StaticResource buttonBackground}" Height="40" Width="98" Canvas.Left="132" Canvas.Top="125" Tap="BorderOk_Tap_1">
<TextBlock TextAlignment="Center" Text="Ok" FontSize="26" FontFamily="/Assets/Fonts/OpenSans-Regular.ttf#Open Sans Regular" Canvas.Top="14" Margin="10,5,10,2"/>
</Border>
</Canvas>
</Border>
</Canvas>
对于名称为BorderOk的边框,有Tap事件。我在整个应用程序中使用此用户控件,几乎在所有页面中。一旦用户点击边框,它将导航到MainPage.xaml,但我的问题是在某些页面中我希望它不导航(意味着要更改的点击事件的功能)。那么我可以通过使用相同的usercontrol来实现这一点吗?如果是这样,该怎么做?
答案 0 :(得分:1)
您可以做的一件事是向用户控件添加一个参数,例如&#34; shouldNavigate&#34;并在每次使用它时设置它(或者具有默认值true并在特殊情况下将其更改为false)。在Tap事件中使用此参数的值。
已经多次讨论了SO,请查看:How to read a passed parameter in a WPF UserControl?