【问题标题】:WPF element host is crashing every second timeWPF 元素主机每秒崩溃一次
【发布时间】:2012-05-26 09:33:05
【问题描述】:

我在 Windows 窗体项目中有一个 WPF 用户控件,但我遇到了问题。每次我的应用程序崩溃,因为元素主机无法在用户控件中加载数据。

当我把它放在 WPF 项目中时也会发生同样的事情。每隔一秒,我的应用就会正常启动。

知道可能是什么问题吗?这是我的用户控制代码:

<UserControl x:Class="Fleet_management.Info"
             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"
             mc:Ignorable="d" Height="492" Width="578">
    <UserControl.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FFE2E2E2" Offset="0" />
            <GradientStop Color="White" Offset="1" />
        </LinearGradientBrush>
    </UserControl.Background>

    <UserControl.Resources>
        <XmlDataProvider x:Key="rssData" XPath="//item" Source="******" />
    </UserControl.Resources>

    <Grid Margin="3" Height="598" Width="565">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="252*" />
            <ColumnDefinition Width="90*" />
            <ColumnDefinition Width="223*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="177*" />
            <RowDefinition Height="55*" />
            <RowDefinition Height="122*" />
            <RowDefinition Height="177*" />
        </Grid.RowDefinitions>

        <ListBox x:Name="lstItems" Margin="3,0" ItemsSource="{Binding Source={StaticResource rssData}}"
                 SelectedIndex="0" VerticalAlignment="Stretch" FontStretch="Normal" FontSize="14" FontFamily="Lucida Sans Unicode" Grid.ColumnSpan="3">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Image Width="20" Margin="3" Source="{Binding XPath=enclosure/@url}" />
                        <TextBlock Margin="3" VerticalAlignment="Center" Text="{Binding XPath=title}" FontWeight="Bold" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

        <StackPanel Grid.Row="1" Orientation="Vertical" DataContext="{Binding ElementName=lstItems, Path=SelectedItem}" Margin="0,0,0,5" Grid.ColumnSpan="3">
            <TextBlock Margin="3" FontSize="13" FontWeight="Bold" Text="{Binding XPath=title, Path=InnerText}" />
            <TextBlock Margin="3" Opacity="0.72" Text="{Binding XPath=pubDate}" />
        </StackPanel>
        <ScrollViewer CanContentScroll="True" Grid.Row="2" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"  DataContext="{Binding ElementName=lstItems, Path=SelectedItem}" Margin="0,0,3,115" Grid.RowSpan="2" Grid.ColumnSpan="3">
            <TextBlock  Margin="3"
                       FontStyle="Italic" Text="{Binding XPath=description, Path=InnerText}" TextWrapping="Wrap" TextAlignment="Justify" AllowDrop="False"
                       Foreground="#FF0000E7" FontFamily="Lucida Sans Unicode" FontSize="14" Padding="0,0,5,0" VerticalAlignment="Center" />
        </ScrollViewer>

    </Grid>
</UserControl>

【问题讨论】:

    标签: c# wpf user-controls crash


    【解决方案1】:

    您可能需要检查包含数据的 xml 文档是否仍被之前的应用程序锁定。

    所以,启动应用程序。关闭它。 Check to see if the xml file is still in use.

    另外,:添加异常处理,以便您知道抛出了什么异常。至少使用Application.DispatherUnhandledException

    【讨论】:

    • 来源是从互联网网站读取的,它是 rss 阅读器。当这可能在运行时加载时,如何进行异常处理。我在工具箱中使用了 WPF 元素宿主控件并设置为加载某些用户控件。
    • 我指的是在 WPF 应用程序中测试它。
    • 问题是我是 WPF 的新手,这就是为什么这可能会发生,我可能忘了处理一些东西。你可以尝试运行我的代码吗?你可以放一些你想要的 rss 链接,它可能会工作
    • 我使用http://wpfwonderland.wordpress.com/feed/ 作为 rss 源,它每次都有效。你能用这个网址测试吗?
    • 嗯,它开始正常的eveytime
    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 2017-05-09
    • 2017-03-31
    • 2013-04-13
    • 2021-07-18
    相关资源
    最近更新 更多