1

Storyboardウィンドウを閉じると、「このビジュアルはプレゼンテーションソースに接続されていません。」というエラーが返ってきました。

私のシナリオは2つのウィンドウと1つで構成されていますUserControl

これは window1 の xaml コードです。

<Window x:Name="LWindow" x:Class="WpfAppXtesting.WindowTest1"
    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:local="clr-namespace:WpfAppXtesting"
    mc:Ignorable="d"
    WindowStyle="None"
    Title="WindowTest1" Height="160" Width="435">
<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
        </ResourceDictionary.MergedDictionaries>

        <!-- Storyboard -->
        <Storyboard x:Key="OpenLWindow">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="LWindow">
                <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="434.4"/>
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" Storyboard.TargetName="LWindow">
                <EasingDoubleKeyFrame KeyTime="0" Value="37"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="37"/>
                <EasingDoubleKeyFrame KeyTime="0:0:1" Value="159.8"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
        <Storyboard x:Key="CloseLWindow" Completed="CloseLWindow_Completed">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="LWindow">
                <EasingDoubleKeyFrame KeyTime="0" Value="434.4"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="434.4"/>
                <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" Storyboard.TargetName="LWindow">
                <EasingDoubleKeyFrame KeyTime="0" Value="159.8"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="37"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>

    </ResourceDictionary>
</Window.Resources>

<Window.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard Storyboard="{StaticResource OpenLWindow}"/>
    </EventTrigger>
</Window.Triggers>

<Grid>
    <Button Content="Button" Width="267" Click="Button_Click" Margin="81,43,80.8,38.4" />

</Grid>

これはwindow1のコードビハインドです:

using System;
using System.Windows;
using System.Windows.Media.Animation;
namespace WpfAppXtesting
{
/// <summary>
/// Interaction logic for WindowTest1.xaml
/// </summary>
public partial class WindowTest1 : Window
{
    private Storyboard closeLWindow;
    public WindowTest1()
    {
        InitializeComponent();
        closeLWindow = FindResource("CloseLWindow") as Storyboard;
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        this.closeLWindow.Begin();
    }
    private void CloseLWindow_Completed(object sender, EventArgs e)
    {
        this.Close();
    }
}
}

これは、window2 の xaml コードです。

<Window x:Class="WpfAppXtesting.WindowTest2"
    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:local="clr-namespace:WpfAppXtesting"
    mc:Ignorable="d"
    Title="WindowTest2" Height="450" Width="800">
<Grid>
    <local:UserControl1 HorizontalAlignment="Left" Height="100" Margin="52,10,0,0" VerticalAlignment="Top" Width="642"/>

</Grid>

これはwindow2のコードビハインドです:

using System.Windows;
namespace WpfAppXtesting
{
/// <summary>
/// Interaction logic for WindowTest2.xaml
/// </summary>
public partial class WindowTest2 : Window
{
    public WindowTest2()
    {
        InitializeComponent();
    }


}
}

これは、usercontrol1 のコード ビハインドです。

<UserControl x:Name="Test1" x:Class="WpfAppXtesting.UserControl1"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:WpfAppXtesting"
         mc:Ignorable="d" 
         d:DesignHeight="32" d:DesignWidth="800">

<Grid x:Name="GridRoot" Background="Aqua" Margin="0,0,447,0">
    <Button Content="Button" Click="Button_Click" Margin="41,0,35,0" />

</Grid>

これは usercontrol1 のコード ビハインドです。

using System.Windows;
using System.Windows.Controls;
namespace WpfAppXtesting
{
/// <summary>
/// Interaction logic for UserControl1.xaml
/// </summary>
public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        WindowTest1 lWindow = new WindowTest1();
        lWindow.ShowDialog();
    }
}
}

問題は にあると思いますwindowsstyle=none

この問題を解決するにはどうすればよいですか。

4

1 に答える 1