平台在XAML中定义

时间:2014-08-22 07:18:10

标签: xaml windows-8.1 windows-phone-8.1

对于我的Universal WP8.1 / WS8.1应用程序,我需要MainPage.xaml中的特定于平台的代码。我有一个webView,它应该在单击后退按钮时返回,但我在WS上没有原生后退按钮,那么我怎样才能使这个代码仅适用于WS8.1?

<Button Content="Back" HorizontalAlignment="Center" Margin="0,-10,0,0"
  Width="100" Height="70"
  VerticalAlignment="Top" Click="WebView_GoBack"
  Style="{StaticResource NavigationBackButtonNormalStyle }"
></Button>

1 个答案:

答案 0 :(得分:2)

你可以创建一个类

public class PlatformSpecificFlags
{
    /// <summary>
    /// Returns true if on windows store, otherwise false.
    /// </summary>
    public bool IsOnWindowsStore {
        get
        {
#if NETFX_CORE
            return true;
#else
            return false;
#endif
        } }

}

如果您愿意,也可以为其他平台定义其他属性。

在App.xaml中,您定义了一个资源:

<PlatformSpecificFlags x:Key="PlatformSpecificFlags"/>

然后像这样在xaml中使用它

<Button
  Content="Back"
  HorizontalAlignment="Center"
  Margin="0,-10,0,0"
  Width="100"
  Height="70"
  VerticalAlignment="Top"
  Click="WebView_GoBack"
  Style="{StaticResource NavigationBackButtonNormalStyle }"
  Visibility="{Binding Source={StaticResource PlatformSpecificFlags}, Path=IsOnWindowsStore, Converter={StaticResource BoolToNegateVisibilityConverter}}"></Button>