Mam bardzo prostą klasę, która dziedziczy po System.Windows.Forms.Form i usuwa styl okna WS_CAPTION. Działa doskonale w systemie Windows XP & 7. W systemie Windows 10 pasek tytułowy jest nadal narysowany i kończy się wyglądać paskudnie, gdy używasz niestandardowego kontrolera paska tytułowego.Usuń pasek tytułu z formularza Windows (styl Windows 10)
Wiem, że istnieje kilka sposobów osiągnięcia tego rodzaju wyglądu, ale wybrałem to z wielu powodów. Nie interesują mnie alternatywne metody - to nie jest zamiarem mojego pytania tutaj.
Moje pytanie brzmi: jaka jest przyczyna takiej różnicy między sposobem renderowania w systemie Windows 10 a Windows 7? Różnica nie jest jedynie stylistyczna. Wygląda na to, że pasek tytułu wciąż jest renderowany w pewnym stopniu, mimo że flaga WS_CAPTION została usunięta.
class BorderlessForm : System.Windows.Forms.Form
{
protected override System.Windows.Forms.CreateParams CreateParams
{
get
{
var _CreateParams = base.CreateParams;
_CreateParams.Style &= ~0x00C00000; // remove WS_CAPTION
return _CreateParams;
}
}
}
Okna 7 ekranu (pożądany wygląd zgodny z opisem MSDN)
okien 10 ekranu (niepożądany wygląd niezgodne z opisem MSDN)
używasz WinForm, który jest przestarzałą technologią prezentacji, która prawdopodobnie nie będzie działać w przewidywalny sposób w późniejszych wersjach systemu Windows. Użyj WPF. –
Pokaż dokumentację MSDN dotyczącą przestarzałych formularzy, które okażę jako odpowiedź ... –
Nie powiedziałem, że jest przestarzałe. Powiedziałem tylko, że jest nieaktualny. To jest dziedzictwo. –