दिलचस्प पोस्ट
मैं कैसे जांच करूं कि फाइल मेकफाइल में मौजूद है? जावा 8 सामान्य प्रकार अनुमान इस अधिभार क्यों उठाते हैं? मैं कैसे सत्यापित कर सकता हूं कि कोई मान पर्ल में एक एरे (सूची) में मौजूद है? Bash में गैर-शून्य लंबाई स्ट्रिंग के लिए टेस्ट करें: या AsyncTaskLoader बनाम AsyncTask डुप्लिकेट कीज़ के साथ डेटा को योग्यता में शामिल करना रोलिंग स्क्रीन अभिलेखी यूआई और मेमोरी लीक के साथ बनाए हुए टुकड़े Android पर FFMPEG का उपयोग करें जावा: त्रुटि: चर शुरू नहीं किया गया हो सकता है आईओएस: दस्तावेज़ फ़ोल्डर में एक फ़ाइल कॉपी करें सी #: एक स्ट्रिंग के पहले अक्षर कैसे प्राप्त करें? डीजेन्गो प्रोजेक्ट में हेन्डलर कहां सिग्नल चाहिए? शीर्षक के बिना डायलॉगप्रगमेंट कैसे बनाएं? सीएसएस का उपयोग कर छवि को घुमाने के लिए क्रॉस ब्राउज़र का रास्ता?

Wpf में कस्टम विंडो क्रोम कैसे बनाएं?

मैं WPF विंडो के लिए एक मूल कस्टम विंडो क्रोम कैसे बना सकता हूं, जिसमें क्लोज बटन और अभी भी चलने योग्य और पुन: आकारणीय विंडो शामिल नहीं है?

Solutions Collecting From Web of "Wpf में कस्टम विंडो क्रोम कैसे बनाएं?"

आप अपने विंडो की विंडो WindowStyle="None" सेट करते हैं, फिर अपना स्वयं का विंडो इंटरफ़ेस WindowStyle="None" आपको अपना न्यूनतम / मैक्स / क्लोज़ / क्लोज इवेंट हैंडलर्स बनाने की आवश्यकता है, लेकिन रिसाइजिंग अभी भी बनाए रखा है।

उदाहरण के लिए:

 <Window WindowState="Maximized" WindowStyle="None" WindowStartupLocation="CenterScreen" MaxWidth="{Binding Source={x:Static SystemParameters.WorkArea}, Path=Width}" MaxHeight="{Binding Source={x:Static SystemParameters.WorkArea}, Path=Height}" > <DockPanel x:Name="RootWindow"> <DockPanel x:Name="TitleBar"> <Button x:Name="CloseButton" DockPanel.Dock="Right" /> <Button x:Name="MaxButton" DockPanel.Dock="Right" /> <Button x:Name="MinButton" DockPanel.Dock="Right" /> <TextBlock HorizontalAlignment="Center">Application Name</TextBlock> </DockPanel> <ContentControl Content="{Binding CurrentPage}" /> </DockPanel> </Window> 

और यहाँ कुछ उदाहरण कोड-पीछे आम विंडो कार्यक्षमता के लिए है

 /// <summary> /// TitleBar_MouseDown - Drag if single-click, resize if double-click /// </summary> private void TitleBar_MouseDown(object sender, MouseButtonEventArgs e) { if(e.ChangedButton == MouseButton.Left) if (e.ClickCount == 2) { AdjustWindowSize(); } else { Application.Current.MainWindow.DragMove(); } } /// <summary> /// CloseButton_Clicked /// </summary> private void CloseButton_Click(object sender, RoutedEventArgs e) { Application.Current.Shutdown(); } /// <summary> /// MaximizedButton_Clicked /// </summary> private void MaximizeButton_Click(object sender, RoutedEventArgs e) { AdjustWindowSize(); } /// <summary> /// Minimized Button_Clicked /// </summary> private void MinimizeButton_Click(object sender, RoutedEventArgs e) { this.WindowState = WindowState.Minimized; } /// <summary> /// Adjusts the WindowSize to correct parameters when Maximize button is clicked /// </summary> private void AdjustWindowSize() { if (this.WindowState == WindowState.Maximized) { this.WindowState = WindowState.Normal; MaximizeButton.Content = "1"; } else { this.WindowState = WindowState.Maximized; MaximizeButton.Content = "2"; } } 

.NET 4.5 ने एक नया वर्ग जोड़ा है जो इस को सरल करता है।

विंडो क्रोम क्लास आपको Windows प्रस्तुति फाउंडेशन (WPF) सामग्री को एक विंडो के गैर-क्लाइंट क्षेत्र में विस्तारित करने में सक्षम बनाता है जो आम तौर पर ऑपरेटिंग सिस्टम के विंडो प्रबंधक के लिए आरक्षित होता है।

आप यहां एक ट्यूटोरियल पा सकते हैं।

और यहाँ एक छोटा उदाहरण उपयोग है

मैंने नीचे दिए गए उदाहरण का उपयोग केवल 4.5। के लिए किया है और यह बहुत अच्छी तरह से काम करता है। दिलचस्प बात यह है कि यह क्लिक ईवेंट के लिए एक संसाधन डिक्शनरी के लिए पीछे कोड का उपयोग करता है। आपको बस अपने पास app.xaml फ़ाइल में संसाधन डिक्शनरी के संदर्भ में करना होगा और फिर विंडो स्टाइल CustomWindowStyle को असाइन करें। यह बेशर्मी से http://www.eidias.com/blog/2014/1/27/restyle-your-window से चोरी हो गया था।

 <ResourceDictionary x:Class="WpfApp7.WindowStyle" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style x:Key="CustomWindowStyle" TargetType="{x:Type Window}"> <Setter Property="WindowChrome.WindowChrome"> <Setter.Value> <WindowChrome CaptionHeight="30" CornerRadius="4" GlassFrameThickness="0" NonClientFrameEdges="None" ResizeBorderThickness="5" UseAeroCaptionButtons="False" /> </Setter.Value> </Setter> <Setter Property="BorderBrush" Value="Black" /> <Setter Property="Background" Value="Gray" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Window}"> <Grid> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="5,30,5,5"> <AdornerDecorator> <ContentPresenter /> </AdornerDecorator> </Border> <Grid Height="30" VerticalAlignment="Top"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <StackPanel Orientation="Horizontal" Margin="5,0"> <Button Content="A" Margin="0,0,5,0" VerticalAlignment="Center" Click="Button_Click" WindowChrome.IsHitTestVisibleInChrome="True"/> <Button Content="B" Margin="0,0,5,0" VerticalAlignment="Center" Click="Button_Click" WindowChrome.IsHitTestVisibleInChrome="True"/> <Button Content="C" Margin="0,0,5,0" VerticalAlignment="Center" Click="Button_Click" WindowChrome.IsHitTestVisibleInChrome="True"/> <Button Content="D" Margin="0,0,5,0" VerticalAlignment="Center" Click="Button_Click" WindowChrome.IsHitTestVisibleInChrome="True"/> </StackPanel> <TextBlock Margin="5,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="16" Foreground="White" Text="{TemplateBinding Title}" Grid.Column="1"/> <StackPanel Orientation="Horizontal" Grid.Column="2"> <Button x:Name="btnClose" Width="15" Margin="5" Click="CloseClick" Content="X" WindowChrome.IsHitTestVisibleInChrome="True" /> <Button x:Name="btnRestore" Width="15" Margin="5" Click="MaximizeRestoreClick" Content="#" WindowChrome.IsHitTestVisibleInChrome="True" /> <Button x:Name="btnMinimize" Width="15" Margin="5" VerticalContentAlignment="Bottom" Click="MinimizeClick" Content="_" WindowChrome.IsHitTestVisibleInChrome="True" /> </StackPanel> </Grid> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary> 

और पीछे के कोड के लिए:

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace WpfApp7 { public partial class WindowStyle : ResourceDictionary { public WindowStyle() { InitializeComponent(); } private void CloseClick(object sender, RoutedEventArgs e) { var window = (Window)((FrameworkElement)sender).TemplatedParent; window.Close(); } private void MaximizeRestoreClick(object sender, RoutedEventArgs e) { var window = (Window)((FrameworkElement)sender).TemplatedParent; if (window.WindowState == System.Windows.WindowState.Normal) { window.WindowState = System.Windows.WindowState.Maximized; } else { window.WindowState = System.Windows.WindowState.Normal; } } private void MinimizeClick(object sender, RoutedEventArgs e) { var window = (Window)((FrameworkElement)sender).TemplatedParent; window.WindowState = System.Windows.WindowState.Minimized; } private void Button_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Hello!"); } } }