.NET如何MessageBox确定其相对于显示它的屏幕分辨率的大小?
我正在为WPF应用程序编写一个稍微灵活的对话窗口.窗口的布局布局在网格中:
+-----------------
| auto: Header // A header for the dialog.
+-----------------
| auto: Content // can be any FrameworkElement.
+-----------------
| auto: BottomPanel // With buttons <OK>, <Cancel>, <Delete>, etc.
+-----------------
Run Code Online (Sandbox Code Playgroud)
该Content电池可以是非常大的.在我的一个用例中,用户想要从列表中删除x个元素.然后在确认对话框中列出元素.如果有很多(比如50多个)元素,那么窗口可能会变得太大 - 对我来说太大了.
我想是决定一个函数MaxHeight,并MaxWidth从当前屏幕中模仿微软自己的方式对话窗口的属性MessageBox对话框.
PS:我使用以下static方法调用消息对话框:
// MessageDialog class
public static object Show(
Window owner,
FrameworkElement content,
string title,
string header,
params MessageDialogButton[] buttons
);
/* The MessageDialogButton class has the following properties:
* …Run Code Online (Sandbox Code Playgroud) 我有一个WPF程序集,我想在其中嵌入五个图标,用于与我的应用程序关联的不同文件类型.如何将这些图标嵌入我的EXE?
@smoore @Groky @ChrisF,谢谢.不幸的是,这不是我的要求.我看到我的问题非常模糊0_°.让我重新解释一下这个问题:
我的图标,说Application.ico,Document.ico等在我的WPF项目资源.我在大多数情况下使用以下方法访问这些图标:
<Image Source="/MyAssembly;component/Resources/Icons/Application.ico" />
Run Code Online (Sandbox Code Playgroud)
这每次都有效.我知道.
我的问题是如何在Windows资源管理器中使用相同的图标来获取注册表中的文件关联.我希望能够通过以下路径访问图标:
C:\Program Files\MyApp\MyApp.exe,1
Run Code Online (Sandbox Code Playgroud)
就像图标与文件类型的关联方式一样HKEY_CLASSES_ROOT.
AFAIK,我应该使用资源文件(.rc),编译并将其与我的EXE合并.有点像:
101 RT_ICON Application.ico
102 RT_ICON Document.ico
// etc...
Run Code Online (Sandbox Code Playgroud)
这是WPF中的正确方法吗?有没有替代方案,特别是因为这种方法似乎导致我的装配版本的擦除AssemblyInfo.cs.我仍然准备在资源中编写版本控制信息而不是程序集的信息.
有没有办法告诉ReSharper的使用String,并Int64键入名称时,字段或方法上使用类型(" static-ally"),但string并long为变量初始化?
例子:
string name = "@user";
// but
int compResult = String.Compare(a, b, ...);
long x = 0;
// but
long x = Int64.Parse(s);
Run Code Online (Sandbox Code Playgroud)