我一直在处理这个问题,我不知道如何继续。
我有一个包含Windows窗体和WPF窗体的项目。
我希望每个表单都像这样显示(它是一个WPF):
WPF = http://imageshack.us/photo/my-images/545/wpfk.png/
我实现了这个windows style = none和canresize = yes。我实际上并不希望它被调整大小。我只想在表格周围留下薄薄的边框。但如果我把canresize = false我丢失了边界。我也希望能够在屏幕上移动窗口,而不是在那个地方静止。
我也需要我的winforms所有这些。
的Winforms: WINFORM = http://imageshack.us/photo/my-images/836/winforms.png/
我希望你们明白我需要什么。从图形上看,它必须像第一张图像一样。
答案 0 :(得分:1)
我不确定它是否有帮助,但您可以为此创建Forms集合。 (a)中
答案 1 :(得分:1)
您只需将设计器中的WinForms FormBorderStyle
属性设置为Sizable
,FixedDialog
,Fixed3D
等。其中一个必然会为您提供行为需要。
答案 2 :(得分:1)
解决方案:将此代码粘贴到表单或基本表单中。
private const int WS_SYSMENU = 0x80000;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style &= ~WS_SYSMENU;
return cp;
}
}
感谢Killercam的帮助!
WPF窗口解决方案:
public MainWindow()
{
SourceInitialized += Window_SourceInitialized;
InitializeComponent();
}
private void button2_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
private void button3_Click(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized;
}
private void Window_SourceInitialized(object sender, EventArgs e)
{
WindowInteropHelper wih = new WindowInteropHelper(this);
int style = GetWindowLong(wih.Handle, GWL_STYLE);
SetWindowLong(wih.Handle, GWL_STYLE, style & ~WS_SYSMENU);
}
private const int GWL_STYLE = -16;
private const int WS_SYSMENU = 0x00080000;
[DllImport("user32.dll")]
private extern static int SetWindowLong(IntPtr hwnd, int index, int value);
[DllImport("user32.dll")]
private extern static int GetWindowLong(IntPtr hwnd, int index);