विज़ुअल स्टूडियो में डिज़ाइन के दौरान WPF विंडो बैकग्राउंड का रंग सफेद है, लेकिन जब मैं एप्लिकेशन को डीबग करता हूं, तो इसके बजाय यह काला होता है। क्यूं कर?
यहाँ मेरा .xaml कोड है:
<Controls:MetroWindow x:Class="XLTT.Views.About"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
ShowTitleBar="False"
WindowStartupLocation="CenterOwner"
ShowCloseButton="False"
ResizeMode="NoResize"
WindowStyle="ToolWindow"
Height="320"
Width="400"
Title="About" >
<!-- your content here -->
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Name="lblAppName" Margin="10" TextWrapping="Wrap" Text="Application Name :" VerticalAlignment="Stretch" FontSize="24" FontFamily="Segoe UI Light" Foreground="#FFF53800"/>
<TextBlock Name="lblBuild" Margin="10" TextWrapping="Wrap" Text="Build :" VerticalAlignment="Top" Grid.Row="1" FontSize="16" FontFamily="Segoe UI Light"/>
<TextBlock Name="lblOwner" Margin="10" TextWrapping="Wrap" Text="Owner :" VerticalAlignment="Top" Grid.Row="2" FontWeight="Bold" FontFamily="Segoe UI Light" FontSize="16" />
<TextBlock Name="lblLicense" Margin="10" TextWrapping="Wrap" Text="License" VerticalAlignment="Top" Grid.Row="3" FontWeight="Bold" Foreground="#FFEA1818" FontFamily="Segoe UI Light" FontSize="16" />
<Button Name="btnOk" Content="OK" HorizontalAlignment="Right" Margin="0,0,10,4" VerticalAlignment="Bottom" Width="94" Grid.Row="4" Click="btnOk_Click" Height="40"/>
</Grid>
उत्तर:
जवाब के लिए 2 № 1अपने आप को देखो App.xaml
फ़ाइल।
यदि यह शामिल है:
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />
इसे इसके साथ बदलें:
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
व्याख्या
तुंहारे App.xaml
आपके कार्यक्रम के लिए प्रवेश बिंदु लागू होगाहर बच्चे को विंडो / पृष्ठ / नियंत्रण के लिए स्टाइल सेटिंग्स, लेकिन अक्सर वीएस डिज़ाइनर "सभी संसाधनों को डिजाइनिंग मोड में लोड नहीं कर सकता है। इसलिए वीएस में यह डिफ़ॉल्ट रूप से सफेद होगा और चलने पर एप्लिकेशन पूरी तरह से शैलियों को लागू करता है।
MahApps 2 डिफ़ॉल्ट का उपयोग करते हैं शैली के टेम्पलेट विंडोज के लिए:
"बेसलाइट", "बेसडार्क"
परिक्षण
बेशक अगर यह अंदर नहीं है App.xaml
आप इसे देख सकते हैं ThemeManager.DetectAppStyle(this);
अपने MetroWindow कंस्ट्रक्टर डिबगिंग में।
या अपने में ओवरराइड App.xaml.cs
the OnStartup()
इस तरह मेथोड:
public partial class App : Application
{
protected override void OnStartup (StartupEventArgs e)
{
// get the theme from the current application
var theme = ThemeManager.DetectAppStyle(Application.Current);
// now set the Green accent and dark theme
ThemeManager.ChangeAppStyle(Application.Current,
ThemeManager.GetAccent("Blue"),
ThemeManager.GetAppTheme("BaseLight"));
base.OnStartup(e);
}
}
अद्यतन करें
के बाद अपने हमें बता रही है कि वहाँ कोई नहीं है App.xaml
आपके अनुप्रयोग में प्रविष्टि बिंदु समस्या स्पष्ट है। MahApps कुछ संसाधन शब्दकोशों की आवश्यकता है, जैसा कि आप पर पढ़ सकते हैं त्वरित प्रारंभ मार्गदर्शिका.
मुझे आपके मामले में लगता है तुम सिर्फ शैलियों याद आ रही है MahApps के लिए. तो जोड़ें, के बाद अपने <Controls:MetroWindow>
टैग निम्नलिखित:
<Controls:MetroWindow.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Controls:MetroWindow.Resources>