2010-09-16 107 views
5

我是WPF中的新成員。創建一個新的WPF UserControl。看到有些人使用app.xaml文件來設置應用程序級別資源。App.XAML你在哪裏?

我的解決方案由一個WinForm和一個WPF UserControl組成。我沒有看到任何地方的任何app.xaml文件。

如何繼續?

回答

4

的App.xaml與WPF應用程序相關聯的WPF控件。如果你只有一個用戶控件,沒有應用程序可以參與,是嗎?

創建一個WPF應用程序,你就會有一個App.xaml中把應用程序級資源研究。

出於興趣,爲什麼你有WinForm的,如果您使用的是WPF用戶控件?

編輯:重複我的評論:當您不創建WPF應用程序時,您不會提供WPF應用程序資源。

編輯:正如在安東尼布里恩的回答中指出的,似乎你可以破解它 - 但我強烈建議這種事情,如果你可以幫助它。從根本上說,你正在與平臺的期望相悖 - 這絕不是一個好的情況。

+2

,因爲我們想用WPF元素填充現有的大型WinForms應用程序。我們現在無法直接將所有邏輯直接轉換爲WPF。 – serhio 2010-09-16 10:59:25

+1

我實際上在一個大的WinForms應用程序中託管WPF用戶控件,希望這個應用程序將成爲一個完整的WPF應用程序。但如果這是一個新項目,我完全同意Jon Skeet – 2010-09-16 10:59:51

+0

這是一個演示應用程序。但演示的範圍是演示WinForm如何可以託管WPF控件。所以原則上我不能將它改爲WPF。 – serhio 2010-09-16 11:01:13

3

你需要創建一個WPF或Silverlight應用程序來獲取文件 你實際上是託管在WinForms應用程序

+0

因此,如果沒有完整的WPF應用程序,我在app.xaml中沒有權限,對不對? – serhio 2010-09-16 10:58:00

+1

如果是演示應用程序,你真的需要它嗎? – 2010-09-16 11:08:53

+0

該演示的範圍是演示WinForm如何託管WPF控件。所以原則上我不能將它改爲WPF。 – serhio 2010-09-16 11:29:14

3

如果你創建了一個WinForm項目,它將不會有一個app.xaml。

改爲創建一個WPF項目。

+1

我需要一個Winform熱門WPF。 – serhio 2010-09-16 11:05:00

2

本文介紹的很詳細如何讓應用程序範圍內的資源在託管/互操作場景:

http://drwpf.com/blog/2007/10/05/managing-application-resources-when-wpf-is-hosted/

的解決途徑,我選擇了(文章)是包含應用程序。 XAML作爲頁面元素

修改項目文件:

<Page Include="App.xaml" /> 
<Compile Include="App.xaml.cs"> 
    <DependentUpon>App.xaml</DependentUpon> 
    <SubType>Code</SubType> 
</Compile> 

添加代碼:

public App() 
{ 
    InitializeComponent(); 
} 

public static void EnsureApplicationResources() 
{ 
    if (Application.Current == null) 
    { 
     // create the Application object 
     new App(); 
    } 
} 

完整的詳細信息在文章中。