System.AppDomainUnloadedException после закрытия приложения VSTO - PullRequest
0 голосов
/ 12 апреля 2019

Я создал Addins VSTO для Excel с окном WPF.Все отлично работаетК сожалению, когда я прикрепил стиль окна WindowChrome, после закрытия Excel появляется ошибка System.AppDomainUnloadedException.

У меня есть Excel 2016, Visual Studio 2017, Net Framework 4.6.1.

Это код Window1:

<Window x:Class="ExcelAddIn1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Microsoft.Windows.Shell"
             xmlns:local="clr-namespace:ExcelAddIn1"
             mc:Ignorable="d" 
             Title="Title" Width="300" Height="300" WindowState="{Binding CurWindowState, Mode=TwoWay}">
    <Window.Resources>
        <Style x:Key="GStyle" TargetType="{x:Type local:Window1}">
            <Setter Property="shell:WindowChrome.WindowChrome">
                <Setter.Value>
                    <shell:WindowChrome
                        CaptionHeight="36"
                        GlassFrameThickness="-1"
                        ResizeBorderThickness="4" />
                </Setter.Value>
            </Setter>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type local:Window1}">
                        <Grid>

                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid />
</Window>

Это код позадиОкно1:

using System.Windows;

namespace ExcelAddIn1
{
    /// <summary>
    /// Logika interakcji dla klasy Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            Loaded += Window_Loaded;
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Style _style = null;
            if (Microsoft.Windows.Shell.SystemParameters2.Current.IsGlassEnabled == true)
            {
                _style = (Style)Resources["GStyle"];
            }
            this.Style = _style;
        }
    }
}

Это часть кода надстройки:

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            (new Window1()).Show();
        }

Как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...