如何在XAML中使用类似“#if”指令的内容。我已经为我的Bing地图控件宣布了一个凭据密钥,我想在我不在的时候关闭密钥。关键是在资源字典中。如何在调试中禁用它?
答案 0 :(得分:1)
我没有测试过这个,但我想知道这个或类似的东西是否会起作用。
您可以在地图的DataContext(视图模型或其他)中声明此公共属性。
public CredentialsProvider MyCredentialsProvider
{
#if DEBUG
return null;
#else
return new ApplicationIdCredentialsProvider(MyResources.MyCredentialsKey);
#endif
}
(MSDN说我们应该使用ApplicationIdCredentialsProvider。)
然后你可以简单地绑定到这个属性,因为CredentialsProvider是dependency property:
<m:Map CredentialsProvider="{Binding MyCredentialsProvider}"/>
答案 1 :(得分:1)
我最近发布了一篇博客帖子Managing the Visibility of Xaml Elements in Cross Platform Applications,其中介绍了如何根据构建是Silverlight还是WPF来显示或隐藏Xaml。
这基本上使用了附加属性,当按如下方式应用时,将隐藏(或显示)元素:
local:FrameworkVisibilityManager.VisibleIn="Silverlight"
// OR
local:FrameworkVisibilityManager.VisibleIn="Wpf"
不幸的是,根据配置无法排除Xaml,但您当然可以根据配置更改可见性等属性。
使用上面的方法,您可以创建一个名为DebugCredentialsProvider的附加属性,只有在Debug中才会将凭据应用于Bing Maps控件。