2012-12-18 17 views
5

Ekran görüntüsünü en üst düzeye çıkarıldığında Chrome tarayıcısına bakarsanız, pencerenin üst kısmında sekme başlıkları bulunur. Benzer bir şey yapabilir miyim?WPF'de, düzenli küçültme, büyütme ve kapatma düğmelerine sahip kenarlıksız bir pencereye sahip olabilir miyim?

+1

pencere çerçevesi (olmayan istemci alanı) doğrudan şeyler çizmek olduğunu. Bu WPF ile çok mümkün; Eğer etrafta arama yaparsanız kullanabileceğiniz bir şey bulabilirsin. – BoltClock

cevap

20

Kesinlikle, ama bu düğmeleri yeniden kendiniz yapmak zorunda kalacaksınız (bu zor değil, endişelenmeyin). senin MainWindow.xaml olarak

:

<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> 

Sonra sadece Düğmeleri ve Tuvalin üzerinde dilediği gibi TabControl yerleştirin ve bir görünüm ve his var.

DÜZENLEME:

<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> 
: .NET 4.5 minimize/maksimize/kapama için Yerleşik komutlar .NET 4.5 kullanıyorsanız, yapabileceğiniz Yani SystemCommands.CloseWindowCommand/ SystemCommands.MaximizeWindowCommand/ SystemCommands.MinimizeWindowCommand

vardır

Ve kod arkasında C#:

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); 
    } 

Bu/maksimize/kapama yapmak tam olarak w gibi çalışır minimize edecek Normal bir pencere.
Tabii ki, C# bir ViewModel'e taşımak için System.Windows.Interactivity kullanmak isteyebilirsiniz.

İlgili konular