Aero Glass fronteira com janelas pop-up em C #
Pergunta
Eu gostaria de criar janelas pop-up (de um tamanho fixo) como este:
no meu aplicativo usando C #. Eu olhei para NativeWindow mas eu não tenho certeza se este é o caminho certo para fazê-lo. Eu quero uma janela para se comportam exatamente como o controle de volume ou "conectar-se" janela no Windows 7.
Como posso fazer isso?
Solução
Eu era capaz de fazer isso:
if (m.Msg == 0x84 /* WM_NCHITTEST */) {
m.Result = (IntPtr)1;
return;
}
base.WndProc(ref m);
Outras dicas
Usando WinForms, criar um formulário e defina o seguinte:
Text = "";
FormBorderStyle = Sizable;
ControlBox = false;
MaximizeBox = false;
MinimizeBox = false;
ShowIcon = false;
Editar:
Isto requer a janela ser considerável, mas você pode enganar em que um pouco. Definir a MinimumSize e MaximumSize para o tamanho desejado. Isso impedirá que o usuário de redimensionamento.
Como Jeff sugeriu, você também pode fazer isso em CreateParams:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
unchecked
{
cp.Style |= (int)0x80000000; // WS_POPUP
cp.Style |= 0x40000; // WS_THICKFRAME
}
return cp;
}
}
Em ambos os casos, no entanto, você ainda obter um cursor de dimensionamento quando você passa o mouse sobre as bordas. Eu não tenho certeza de como impedir que isso aconteça.
Em seus CreateParams especificar WS_POPUP e WS_THICKFRAME.
Para evitar que os cursores de dimensionamento sobre a WM_NCHITTEST
fronteiras alça e quando as fronteiras HTBORDER
retornar.