Jeśli spojrzysz na przeglądarkę Chrome po zmaksymalizowaniu, ma ona nagłówki tabulacji u góry okna. Czy mogę zrobić coś podobnego?Czy w WPF mogę mieć okno bez obramowania, które ma regularne przyciski minimalizacji, maksymalizowania i zamykania?
Odpowiedz
Oczywiście, ale sam musisz przerobić te przyciski (nie jest to trudne, nie martw się).
W swojej MainWindow.xaml:
<Window ...
Title="" Height="Auto" Width="Auto" Icon="../Resources/MyIcon.ico"
ResizeMode="NoResize" WindowStartupLocation="CenterScreen"
WindowStyle="None" AllowsTransparency="True" Background="Transparent"
...>
<Canvas>
<Button /> <!-- Close -->
<Button /> <!-- Minimize -->
<Button /> <!-- Maximize -->
<TabControl>
...
</TabControl>
</Canvas>
</Window>
Wtedy po prostu trzeba umieścić przycisków oraz TabControl jak chciał na płótnie i dostosować wygląd.
EDIT: Wbudowany w poleceniach do zamykania/maksymalizacji/minimalizacji w .NET 4.5 są SystemCommands.CloseWindowCommand
/ SystemCommands.MaximizeWindowCommand
/SystemCommands.MinimizeWindowCommand
Więc jeśli używasz .NET 4.5, można to zrobić:
<Window ...
Title="" Height="Auto" Width="Auto" Icon="../Resources/MyIcon.ico"
ResizeMode="NoResize" WindowStartupLocation="CenterScreen"
WindowStyle="None" AllowsTransparency="True" Background="Transparent"
...>
<Window.CommandBindings>
<CommandBinding Command="{x:Static SystemCommands.CloseWindowCommand}" CanExecute="CommandBinding_CanExecute_1" Executed="CommandBinding_Executed_1" />
<CommandBinding Command="{x:Static SystemCommands.MaximizeWindowCommand}" CanExecute="CommandBinding_CanExecute_1" Executed="CommandBinding_Executed_2" />
<CommandBinding Command="{x:Static SystemCommands.MinimizeWindowCommand}" CanExecute="CommandBinding_CanExecute_1" Executed="CommandBinding_Executed_3" />
</Window.CommandBindings>
<Canvas>
<Button Command="{x:Static SystemCommands.CloseWindowCommand}" Content="Close" />
<Button Command="{x:Static SystemCommands.MaximizeWindowCommand}" Content="Maximize" />
<Button Command="{x:Static SystemCommands.MinimizeWindowCommand}" Content="Minimize" />
<TabControl>
...
</TabControl>
</Canvas>
</Window>
A w C# kodu za:
private void CommandBinding_CanExecute_1(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
private void CommandBinding_Executed_1(object sender, ExecutedRoutedEventArgs e)
{
SystemCommands.CloseWindow(this);
}
private void CommandBinding_Executed_2(object sender, ExecutedRoutedEventArgs e)
{
SystemCommands.MaximizeWindow(this);
}
private void CommandBinding_Executed_3(object sender, ExecutedRoutedEventArgs e)
{
SystemCommands.MinimizeWindow(this);
}
To uczyni blisko/maksymalizacji/minimalizacji działa dokładnie tak jak w w zwykłym oknie.
Oczywiście, możesz użyć System.Windows.Interactivity
, aby przenieść C# do ViewModel.
Zobacz ten wpis na blogu, w którym opisano, jak korzystać z interfejsu API wstążki do rysowania w obszarze Chrome, zachowując przy tym standardowe przyciski systemu Windows.
http://blogs.msdn.com/b/wpfsdk/archive/2010/08/25/experiments-with-windowchrome.aspx
- 1. Jak usunąć obramowanie okna (zawierające przyciski minimalizacji, maksymalizacji i zamknięcia) z widżetu Qt?
- 2. Jak ukryć domyślne przyciski minimalizacji/maksymalizacji i zamykania w oknie JFrame w Javie?
- 3. Przeniesienie okna bez obramowania w wpf
- 4. Qt ukryj przyciski minimalizacji, maksymalizacji i zamknięcia
- 5. Czy WPF ma rodzime okno dialogowe pliku?
- 6. Qt C++ okno minimalizacji i maksymalizacji
- 7. Jak zaimplementować okno bez chromowania z WPF?
- 8. WPF Zmiana rozmiaru okna bez obramowania
- 9. Przeciągalne okno WPF bez ramki
- 10. Okno bez obramowania. Jak dodać cień i usunąć obramowanie 1px?
- 11. WPF - Ukryj przycisk minimalizacji okna
- 12. Czy istnieje sposób programowej minimalizacji okna?
- 13. Czy można utworzyć główne okno aplikacji bez obramowania w systemie Windows, bez stylu WS_POPUP?
- 14. Czy mogę mieć formularz Django bez modelu
- 15. Okno Załadowany i WPF
- 16. Jak naprawić wyrażenie regularne, które ma uchwycić słowo i identyfikator?
- 17. Jaką funkcję Uxtheme muszę użyć, aby uzyskać domyślny rozmiar przycisków minimalizacji, maksymalizacji i zamykania?
- 18. Jak utworzyć niestandardowe okno chrome w wpf?
- 19. Typ/okno dialogowe WPF?
- 20. Przyciski WPF tej samej/zalecanej szerokości
- 21. RaceOnRCWCleanup podczas zamykania aplikacji WPF
- 22. Czy można zamknąć czytnik bez zamykania strumienia?
- 23. Wyłącz przycisk minimalizacji JFrame
- 24. UIBarButtonItem z niestandardowym obrazem i bez obramowania
- 25. Jak mogę mieć WPF używać jednego stylu okna dla trybu debugowania i innego dla trybu zwolnienia?
- 26. Jak mogę stylu Przyciski
- 27. Czy Xcode ma okno zegarka?
- 28. Java - Czy ByteArrayOutputStream jest bezpieczny bez opróżniania() i zamykania()?
- 29. Okno wpf całkowicie czarne
- 30. Jak mogę sprawdzić, czy okno ma fokus? (Win32 API)
Co będziemy chcieli zrobić, to wyciągnąć rzeczy bezpośrednio na ramie okiennej (obszar non-Client). Jest to bardzo możliwe z WPF; jeśli się przeszukasz, możesz znaleźć coś, czego możesz użyć. – BoltClock