我一直在试图弄清楚如何组织我的ResourceDictionary文件以便重用并与我团队的其他成员共享.
我一直遇到"Generic.xaml",但如果我在MSDN上查看Generic.xaml或者只是进行谷歌搜索,我似乎只会发现博客文章和论坛问题 - 我似乎无法打击任何真正权威和清晰的东西.
Generic.xaml和MyRandomlyNamedResourceDictionary.xaml有什么区别?看起来无论哪种方式,我都必须使用Source属性引用存储在库中的ResourceDictionaries.例如,:
<Application.Resources>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml"
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
那么Generic.xaml有什么优势呢?如果我不试图给我的应用程序多个"外观"(即,如果我只有一个主题),它是否有任何目的?
在编程时我是初学者,但我确信其中一个通用规则是程序以Main()开头.我在创建WPF项目时没有看到一个.Main()只是在WPF中以不同的方式命名?
我有一个奇怪的错误,我试图调试没有运气.
我有子类hwndhost显示一些内容,我在该类中有以下功能设置为全屏:
private void SetFullScreen(bool enable)
{
if (enable)
{
fs = new Window();
fs.ResizeMode = ResizeMode.NoResize;
fs.WindowState = System.Windows.WindowState.Maximized;
fs.WindowStyle = System.Windows.WindowStyle.None;
fs.Topmost = true;
fs.PreviewKeyDown += delegate(object sender, KeyEventArgs e) {
if (e.Key==Key.Escape)
FullScreen = false;
};
fs.Show();
}
else
{
fs.Close();
fs = null;
}
}
Run Code Online (Sandbox Code Playgroud)
这在我的原型WPF应用程序中运行良好但是当我在我的主应用程序中使用此代码时,在关闭窗口(转义键)和fs.close()通话时出现此错误:
'{DependencyProperty.UnsetValue}' is not a valid value for property 'FocusVisualStyle'.
奇怪的是它在窗户关闭后大约1500ms发生.我已经尝试将FocusVisualStyle设置fs为null,但它看起来像是其他东西.直觉是它试图将另一个元素集中在我没有这个属性的app中,但我真的不知道!
谢谢!
编辑.问题是我的全屏按钮上的自定义设置FocusVisualStyle.我设置为{x:Null},问题就消失了.