簡體   English   中英

UserControl中的WPF異常拋出異常無法找到資源'styles / colors.xaml'

[英]WPF mahapps in a UserControl throws exception Cannot locate resource 'styles/colors.xaml'

如果我在應用程序中使用示例代碼,但一切正常,但是我需要在UserControl中使用它,但由於它將進入其他人的框架,所以我將無法訪問App.Xaml:

<UserControl x:Class="MyAssembly.Views.MyPanel"
         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:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
         mc:Ignorable="d" 
         d:DesignHeight="600" d:DesignWidth="300">
<UserControl.Resources>
    <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />

        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

</UserControl.Resources>
<Grid>
    <ScrollViewer Height="90" Width="120" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
        <StackPanel>
            <TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor "/>
            <TextBlock Text="incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud "/>
            <TextBlock Text="exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"/>
            <TextBlock Text="dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. "/>
            <TextBlock Text="Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"/>
            <TextBlock Text="Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"/>

        </StackPanel>
    </ScrollViewer>
</Grid>
</UserControl>

上面的代碼拋出的異常看起來像(不是全部,但應該足夠了):

Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader,     IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)

******************************************
Cannot locate resource 'styles/colors.xaml'.
at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)
at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)
at System.IO.Packaging.PackWebResponse.CachedResponse.GetResponseStream()
at System.IO.Packaging.PackWebResponse.GetResponseStream()
at System.IO.Packaging.PackWebResponse.get_ContentType()
at MS.Internal.WpfWebRequestHelper.GetContentType(WebResponse response)
at MS.Internal.WpfWebRequestHelper.GetResponseStream(WebRequest request, ContentType& contentType)
at System.Windows.ResourceDictionary.set_Source(Uri value)
at System.Windows.Baml2006.WpfSharedBamlSchemaContext.<Create_BamlProperty_ResourceDictionary_Source>b__1c4(Object target, Object value)
at System.Windows.Baml2006.WpfKnownMemberInvoker.SetValue(Object instance, Object value)

事實證明,該框架的所有者正在使用舊版本的mahapps(0.999),該版本具有拼寫顏色,因為它們首先被加載,因此會崩潰。 加載舊版本僅適用於一次編譯,我選擇不將其僅用於滾動條“連續性”

嘗試將xaml網址添加到ResourceDictionary:

 <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="../styles/colors.xaml" />
                 (...)
  </ResourceDictionary.MergedDictionaries>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM