2014-11-05 46 views
0

在我的Windows Phone 8應用程序中,我使用一個用戶控件來顯示所有頁面。 用戶控件XAML代碼:我們如何爲wp8中的usercontrol提供不同的Tap事件功能?

<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邊境有點擊的事件。我在我的應用程序中使用這個用戶控件,幾乎在所有頁面中。一旦用戶點擊邊界,它將導航到MainPage.xaml,但我的問題是我希望它不導航的一些頁面(意味着要改變的點擊事件的功能)。所以我可以通過使用相同的用戶控件來實現這個目標嗎?如果是這樣,怎麼做?

回答

1

你可以做的一件事是爲用戶控件添加一個參數,例如「shouldNavigate」,並在每次使用它時設置它(或者默認值爲true,並在特殊情況下將其更改爲false)。在Tap事件中使用此參數的值。

在SO上已經討論過很多次了,請查看:How to read a passed parameter in a WPF UserControl?

相關問題