0

アプリケーションリソースで次のリソースが定義されています

<Application.Resources>
    <Style x:Key="gridTextBox">
        <Setter Property="TextBox.Margin" Value="0,5,5,5"/>
    </Style>
</Application.Resources>

そして、リソースはメインウィンドウのテキストボックスに通常どおり適用されます

<TextBox Name="textBox1" Style="{StaticResource gridTextBox}"/>

私が抱えている問題は、Unity ブートストラップ経由でアプリケーションを起動すると、アプリケーションがテキスト ボックス リソースで XamlParseException をスローすることです。しかし、app.xaml で startupUri を使用すると、アプリケーションは期待どおりに読み込まれます。私のブートストラップは次のようになります

public class Bootstrapper : UnityBootstrapper
{
    protected override void InitializeShell()
    {
        base.InitializeShell();
        App.Current.MainWindow = (Window)Shell;
        App.Current.MainWindow.Show();
    }

    protected override DependencyObject CreateShell()
    {
        var shell = new MainWindow();
        return shell;
    }
}

そして、私のアプリケーションの起動は次のとおりです

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        new Bootstrapper().Run();
    }
}

私は何が欠けていますか?

4

1 に答える 1

1

App.xaml を次のように変更します。

<Application x:Class="UnityBootstrapperTest.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             >
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary>
                    <Style x:Key="gridTextBox">
                        <Setter Property="TextBox.Margin" Value="0,5,5,5"/>
                    </Style>
                </ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
于 2012-07-15T12:19:20.887 に答える