2つのWPFアセンブリでテストソリューションを作成しました。 "AssemblyTest" でStaticResourceにより、別のアセンブリからロードされたときにXamlParseExceptionが発生する
、私は、簡単なデフォルトのウィンドウを持っている "OtherWindow"、何もしないこと。 "StartingAssembly"では、AssemblyWindowを初期化してShow()という単純なデフォルトウィンドウ "MainWindow"も持っています。
すべての参照は正しく、両方のウィンドウが正しく表示されます。方法は、それらが期待されている私はStaticResourceを使用するために "OtherWindow" に変更する場合
using AssemblyTest;
namespace StartingAssembly
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
OtherWindow window = new OtherWindow();
public MainWindow()
{
InitializeComponent();
window.Show();
}
}
}
しかし、問題が発生し
これが正常に動作します。。
<Window x:Class="AssemblyTest.OtherWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="OtherWindow" Height="350" Width="525" Background="Blue">
<Grid>
</Grid>
</Window>
ここでは、最後にAssemblyTest
から
<Application x:Class="AssemblyTest.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="OtherWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/CommonResourceDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
を
<Window x:Class="AssemblyTest.OtherWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="OtherWindow" Height="350" Width="525" Background="{StaticResource mainLoginBackground}">
<Grid>
</Grid>
</Window>
リソースがCommonResourceDictionary.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<RadialGradientBrush x:Key="mainLoginBackground" GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="1" RadiusY="1">
<GradientStopCollection>
<GradientStop Color="#ff0f75ba" Offset="0" />
<GradientStop Color="#ff033657" Offset="1" />
</GradientStopCollection>
</RadialGradientBrush>
</ResourceDictionary>
に位置しています。これは、App.xamlである:
しかし、これはXamlParseExceptionの原因エラー:
私は大きなプロジェクトにも適用できるように、この質問をできるだけ基本的な例を使って書きました。あなたが欠けているものを理解するのを助けることができれば、私が働いているより大きなプロジェクトでこのソリューションを使用することができます。さらに、私は類似の質問のためにStackOverflowを検索しましたが、この特定の問題に近いものはありません。
を、あなたは 'DynamicResource''試すの代わりましたStaticResource'? – Safe
はい、私はそれをコンパイルして実行しますが、スタイルは無視されます。 – Rafael
私が取り組んでいるより大きいプロジェクトで* – Rafael