【发布时间】:2011-01-08 14:49:48
【问题描述】:
好的,我的第一个 WPF 项目的时间到了 :)。我以前使用过 Flex 和 PureMVC,我知道项目设置在 RIA 中的重要性。我决定使用 MVVM。并决定使用 PRISM 框架。应用程序类似于操作系统。将有“外壳”(较小应用程序的父级)。我计划制作类似模块的更小的应用程序。所以我打算设计这样的项目结构。
Module_A {视图、视图模型、模型、 assets} // 例如计算器 Module_B {视图、视图模型、模型、 assets} // 笔记本
等 我阅读了 prism 文档,发现所有这些模块的父级都应该是 shell 项目,这是我的主要问题。
Parrent_Project {App.xaml, Bootstrapper.cs、Shell.xaml}
因为这个 shell 将全屏显示背景图像(如操作系统),所以右键单击一些功能。可以在这里为 Shell.xaml 创建像 modulesXYZ 这样的文件夹结构吗?我想以良好的结构开始项目,所以欢迎任何建议。谢谢
也许我不清楚。我可以使用 Shell 为它添加一些功能(以 MVVM 方式),例如将其设置为全屏、始终在顶部等。还是不可以?
我希望 shell 处于完整的 kiosk 模式。我用下面的代码做了一些事情。但是当我按下 alt + tab 时,win 键或其他任务栏会超出我的应用程序。有什么解决办法吗:
public class Interop
{
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
public static IntPtr GetWindowHandle(Window window)
{
return new WindowInteropHelper(window).Handle;
}
}
public Shell()
{
InitializeComponent();
IntPtr window = Interop.GetWindowHandle(this);
IntPtr focused = Interop.GetForegroundWindow();
if (window != focused)
{
Interop.SetForegroundWindow(window);
}
}
【问题讨论】: