2013-01-05 81 views
1

我剛剛注意到,比我的xaml編輯器無法看到App.xaml中定義的樣式。樣式表app.xaml找不到設計師

<Application x:Class="MyApp.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="Windows\MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="/Assets/Themes/ShinyBlue.xaml"/> 
      </ResourceDictionary.MergedDictionaries> 

      // this one gets a warning that's never used, though it is 
      <LinearGradientBrush x:Key="backgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="{StaticResource NormalBrushGradient3}" Offset="0.1" /> 
       <GradientStop Color="{StaticResource NormalBrushGradient1}" Offset="0.4" /> 
      </LinearGradientBrush> 

每次調用這種風格強調既不的風格是由設計師加載(一切都恢復和白色)。當我運行該應用程序時,它看起來很好 - 樣式正在加載。

最近,我改變了切入點,以我的應用程序:

public partial class App : Application 
{ 
    [System.STAThreadAttribute()] 
    public static int Main(string[] args) 
    { 
     var dirsToCreate = new[] 
      { 
       Settings.Default.PhotosDirectory 
      }; 
     foreach (var dir in dirsToCreate) 
     { 
      if (!Directory.Exists(dir)) 
       Directory.CreateDirectory(dir); 
     } 

     App app = new App(); 
     app.InitializeComponent(); 
     app.Run(); 

     return 0; 
    } 

我懷疑,但不能肯定這改變入口點可以有事情做與(我改變了MainWinow的生成操作「頁」 )。

任何想法是怎麼回事,以及如何解決這個問題?

回答

0
  1. 由於您更改了切入點,您是否已將app.xaml中的「StartupUri」屬性更改爲您要啓動的新窗口?

  2. 什麼是您的app.xaml文件中的x:Class屬性,以及您的startupwindow.xaml文件中的x:Class屬性是什麼?

  3. 您是否試過將您的樣式引用爲DynamicResource而不是StaticResource? DynamicResource不會在編譯時加載你的樣式,它會在運行時加載它們。在編輯時不會在設計窗口中應用您的樣式,但在運行應用程序時會應用樣式。這可能不是解決這個問題的最好方法,但我過去只是爲了克服一些愚蠢的小障礙。就我個人而言,我從不使用設計器窗口,我只是用XAML編寫我的UI,所以這對我來說不是問題。

給這些嘗試,讓我知道他們是否有任何工作適合你。

+0

現在看看xaml,我包括更多的幾行。我猜1)和2)都可以。我也試過3),但我仍然看到下劃線的樣式。順便說一句,即使風格沒有加載在設計器中,他們在我運行應用程序時加載。 (即使是靜態資源) – gisek

+0

嗯,它聽起來好像它正在動態加載樣式,即使您將它們引用爲靜態資源。在過去,我通過右鍵單擊解決方案資源管理器中的解決方案並單擊清理解決方案,然後重建解決方案,重新啓動Visual Studio和/或重新啓動計算機來解決此問題。 – kformeck

+0

我不幫忙,依然如此。 – gisek