i am trying to include XAML-Files(some styles) as Resources in my project. But i want them to be interchangable. So i dont want the Build Action "Page" but simply copy them to the output-folder and use the styles from there. I am using SharpVectors in the XAML-Files. The problem is, that if i load a style, an exception is thrown: "Can not create unknown type"{http://sharpvectors.codeplex.com/runtime/}EmbeddedBitmapSource" Maybe some reference is missing?
XAML-File:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Aufwerter"
xmlns:c1="clr-namespace:Aufwerter.Converter"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:svg="http://sharpvectors.codeplex.com/runtime/"
>
<Style x:Key="RevaluatorBildCashOnly" TargetType="UserControl">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Control">
<Border>
<Grid>
<Image HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="1,1,1,1" x:Name="IsExpandedPath">
<Image.Source>
<DrawingImage xmlns:svg="http://sharpvectors.codeplex.com/runtime/">
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V1957 H575 V0 H0 Z">
<DrawingGroup Opacity="1" Transform="1,0,0,1,6,5">
<DrawingGroup.ClipGeometry>
<RectangleGeometry RadiusX="0" RadiusY="0" Rect="-6,-5,575,1957" />
</DrawingGroup.ClipGeometry>
<DrawingGroup Transform="1,0,0,1,-6,-5" Opacity="1">
<ImageDrawing Rect="0,0,575,1957">
<ImageDrawing.ImageSource>
<svg:EmbeddedBitmapSource Data="iVBORw0KGgoAAAANSUhEUgAAAIwAAAB1CAMAAACrg/ndAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAH1UExURQAAAIeHh4 Pj5eXl5 fn6enp7 /v4aGhqKioouLi5OTk5ubm6Ojo6ampqmpqbGxsbe3t7 /v4eHh42NjY Pj5qamqqqqoeHh4mJiZOTk5mZmZubm4mJiY Pj5OTk52dnYyMjJCQkJSUlJeXl5ycnMTExIaGhqurq6ysrIeHh4iIiJOTk5aWlq vr7q6usbGxomJiYuLi46Ojpqamp2dnZ6enqOjo6ampoqKioyMjJCQkJaWlpiYmJqampycnJ6enqGhoaSkpKenp6ysrK6urrS0tMjIyMzMzIeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6 vr /v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3 Dg4OHh4eLi4uPj4 Tk5OXl5WFLufUAAABIdFJOUwAgICAgICA/P0BAQEBfX19fX2BgYGBgf39/f3 AgICAn5 fn5 foKCgv7 /v7 /v8DAwMDAwMDA39/f39/f39/f39/f39/f35oq08UAAAAJcEhZcwAAMsAAADLAAShkWtsAAA1XSURBVHhe7dtng5XVFQXgMdEkpveYxPRKeo8xvUc6QxFkUGkC41AFxEEpA1JVYOgoZSj zuy11j7n3ect917u4De33yLxPq69zrkHhJH3Z9D58rd /OSTixcvWrRw4cIFC bPmzdv7ty5T/3vgc cOY899pB/Zvt85Y8rVqxYvnzZ0qWjo6MGkggkA70Xom7PV//8zDOrVq58 ukkMlKVEUVz/Z/y4OYx//ByHv7rs2vGxlavXm2iVTK5aMmSxTKBBNMDDWlOSzgf dva55977lkbikACCCktWwYTSEmkIj0o0medkOcTf1 /ft26dWvXPk/SmjVrjPQMQnLScpKUUUmavamm eQ/Xnhh48YNG9aLZKAsIik1iRmNMqMgMtDsRB92BueRf45v2bx586ZNgWQZeUhjWJyKtBIZWZWWjbJJ6LY3aXZri5qfbtu6dWJi4sXx8S2GMhNIZsLewuLGQrl54OwCaBy4oUhzHGLzqZ07dmzfvk2iCYo2JZGTTOQgdimKcAN4uSGya3II0pecMjLy75de2rVrJ0XbTWQky8hIWJstLomwNxw3ZqQqEWQi3kmVSNfk/YhyNJ/eu3fvnj27d4sE0zalBNK4rY2kjRTl84ZLKZFoQpUyaZGa5PX2D w5KZqfvfLKvn0vv1yJPCUXgYR2p3KbCCnpwAHkouLASWQpJZF/Zud4NB969dX9 ycnJykCaXciaW9mUkg6bkaCSSRmlPdWinJI3u0 IQnzmYMHDrz22qs2ZkJI 3JInlIWWUp 3NAkuwFSudlu7g13QLW3ZXZx x2AJnmVWkna0/eOHpmaOnzISGYCymLKi7OUQkxYnKFw4EAa6MCxS3YDlAeuWe/vE/PzY6 /fvTo0SkTGemgRFiciWxvIjGl oHjFaByUwQQD5wuJYm4t3Tg/F1iKTXeJSrNf06cOH7MJokOVSJrkkjF3nYwJEakK8BJXJxVya9uVcnKjTKpSuld4uVOeyPmR8T895TNyZMnjoNkoiNHuDaQDnBrDKl24HQF9Dhw8QrQI8Dr7SI9ArzdMD1FzFtvvmFz rSBTlpIIFlGZkpNOgCQ7y00KVwBarc3KYXE8 YHTiIduPAIKN4lxJw9e bMW2 9aaTTJjplIBMd59YAQkgQsUgQpRvAM5KI1 TWlFFqUiMjFsmvgEzyjIg5Pz09fe6ci0qSVdtN1m2QUrdFws3N04a9oUm6uSlCSCaqmtT3XULMxYsXLlw4f95A56qQsDaSsLZK5MctN0mXElLKIalJ VLCBeBNMhJDIkkpxXcJMdeuXbly fLlSyRZTDCdhcmrhHLrwAk1NeXlHvjA UWZbgBbnG ueJcQ8847b1 zgejSJYuJommA6imdIIgHrrgCimtSi5MoHbd8KWURSSZKIEuJmBs3brxjIIiuXjESRRcASiIPyUQGKjLCeSuvyVylcE2q3H4psdxt7xJiZm7dunXz5o0b16 LdPWqmZASm1RVCSkpI1YJXaoOnL5MQIKpduC63iX4ylW5ERIxd 7cuX1bIpA8pUpUtJtr44HjNelXQG53dU1OTqLcQZSKJBFItWuSmHs2d 9SNENTFZL2dllN0g1gIq SroB0c3tKaFLLFdBokg6cMvKQiLl79969d 2viqS9Xa9IV10USbXjJhJTsrUd1nFjSoO S4iZmbl9 /adO3cN9a4NTfa/aHPWbiyuOHB BQxy4FJKhgoHjt8mISYeuAlibtqH3soiSwkio0k0oypVBw5dah4475JAOHC6u2uvAIk63iXE2CfZ5wURSFkEEhYHkERod7NKvCaLjHKVmu8SPAKqcruImLftI65fTyIrcRIxJTXJTKlKod2sUroC/MClcpuoaje2lu/JrncJMVftn2v/viYiqJYR2w0RSCqS2u17C1cASNV549r0LuGl1PddQszlyxb6FYqQUW1rXiRkZCCt7TZBQYS9YW0umubackjepH7vEmIuXLx48dIl 6q8YndvIrnJUNXecCHduysTioQm5bWlJvG05SpJVJK827wBQEKTICJmevo8rtkLtn0n5ZREQkq3PCWWWzFpbV5uv5Ty3nDaQGq S9KllK/J9C4h5swZC9VE52liTJewOcZEUrE6U7mp7cBpcYopv0vigWOV/AuuOHCHiHnTvgMJkshJEjUXl0DsUr4mVSWetyyyfLveJV5uLS5dk8Tg7wgE0blz9n9yUd4bRWYqM/K9qd3x4rYfYT8uiVKVatdk411CzKlTp08TBFEmmQki35qR7uvAqdy53WhSPnDIKN1J7JIyOukYjNVdojIkZhREyB4iFqmeEUhZBJL9TZDaLqXYbpb7DWJOnhTHxkRCJZKZqr3BRFHaG0jZVLsCbFJITKkKqe3LBHsjBis7cSKQMKDmxaUq4V/Iu02Tx8QmmQkppZiQEt8lYW8g5ZD8y4RNEokYvNeOS2QkjIPqqzOTHbjqDpjtgau9S4ixo3WMoELkHptEqnWpOnC8k1pEVUqoksqURKhS7cARY4ccniRyUkOkjLQ3kCyj8sCBlPZWF4lUikCyH5bfJcTYBWieJBJJoN5bq0IKIiMhe4TU68Cx3KFK6BIxR0yDoUgkgtq35seNISVQErFHupN03EBqbM1FPG7xChCGE0UE9dkaRCkiI5kIJAdpa93XJEUsEkDebWLsa/PwVBQRVIgEam4tmdLeeAGo29wbUmp221C1S4nvEmIOYSA6bN dU1MpI0wukk0mYWJKXm4eNyPFJt3Xu4SYgxySbAjqE1TX6khykw5cvpNYb94BZiKpsTpi8Pw7UIAOeUZBFMskkkDN1UmUFtf LqmlBNHMDDH27HutAtVEAhUikQgqRO5RmVJIAnmXKMp704GTCE0ixn7iAI9ALkokRdSZkURdW1O5FZFI cCJVB44Yvbvx08/BXJRLaRBRAL131oud OadAyGIBfFkNzj5 3wcKJ6SswomVx0lRj7iR1 OWVyUqrIEirmBFAKykk2qdmYTLKJa7NBSiKZKVUJRSKJmH379pmnlURRQaII0/vA9Q5KJuVkJj9wCcOJIpEIKlZHUE0kUCESqSlyj00ihS4Rg1 hcE8SiUSQi LaJEqklgMXQC5yUkOkjLQ3Yvbu3QtPEIlEUJ t5ZCaorg1kQTq3Boxe/YYpykiqM/WZtkj9 jA6WcHezR9RQQVW4s9yqShRcTgV9h27w4igQYVEdQQ8QqIIoJ6iojZtWvXS5yGqs6SKrKiqplTuJQk4uQi2WSSDTE7d 40TyJJ1EJyUEmiqG9Qgx04YnbsME4SEdQdkntsKpCLRCLIRd31Fqgo07GE4VSgfmtzTlmmuDaJ4trc4yKCynobiZjt27e7J0Y0lIigYbYGETHbthmnIRqmR00RQcXWckgNkWM4BahPjwQaXuQenbf0LiEGv26/FRNVFSuoOjcnlptsGqrIiiqxAJqaImZ8fPxFgCQqSO6xCSSJhglKJIpagiJmy5Yt I9jArlIJILqIoKGqrdIBLlIJIIOCrN5s3EESqK4NokeQL1FIshFcW0HDzoGQ5BEnVt7ACKC2rdGzCZMQ9SytdYeBdBQPSKIImLwX3YJahFxWnpUkYIo9oigIiPn2HSIMobTIRJptj0iqGdGxGzYsGEjx02lKrMICqtrU3Xl1NKlzJLKWMSsX7/ePIOQFFQkUTRMUC1lImbdOuP0FolEUFpdBXJRrd5RRFB3SO5xDKeviCAXkdRy4AiqRHFtfUXErOUEkUD9RSGiIiOJaluTKBZJoEpEzPOYICKoyMg5Nh0iHrgBRD17RMxzNgRJRFCxNYIGyKgpqvUohkRQsTVi8LtXbGByVMyppUuZ1aZyUl5dVPXIyVTErLFxkETDBCVRubpKNFBQxIyNjcGTQYWIoO6Q3OMZFSGRVNRbJILqIniIWb3aOA6qRHFtUSRQq6izTBLFtUlUrs0xGIJcVNuaRLFITZFzbDpEfnET1F4kYvhbQfuK4tYI6t jzoyaooz506pVqwgqRLUexZAkij0iaOCt6bxJVPXoX8T8ZOVK49RErT0KoFlvLZII iEx33kas5IjlVhR9Z7kZCyCtLofEPN1/E7mFRQ5SSaKegUlEkUFiaIiqHaSTMppYuKLxHx0OTWYKCLIRSIR1F5viUQiaGARQRA9QszIt5dj3NMtIqi93hLFtUnkpADqFP1elpGvLV26dBlB9yciqP/WBivSxx0zMjo6ah4T2QTQMCKCiq119cg5NgQ97JaRzy/BHw0KokgaXFTrUQyJoF5by8GMjPxq8eLF KMTjjKVRMXqeqvEqqni5nrm9DuHYB5dtGiReVyUTMypJhJJooIkE0XtQUUSRTGovCTMowuN46CmqF5vgvqtTiT3lKsjKIo 5gyfzy20IchFcW0EvYcHrmYxzYIF8CRRDEmimJFzbIYQERS3VuxI84Ff4o zuKj31ggaKqNaj0D6bYvF5vE/zJ9PUBGSRE6qQENdAbUegdRYUR5wMHVQ99Yoco5Nb5FIBEn0m2 0x Lz0OPf/MUTT4g0aE4S9ducWBn1l19/9wsf9A99f3rPyMj/AXJJs/ejg1WMAAAAAElFTkSuQmCC" MimeType="image/png" />
</ImageDrawing.ImageSource>
</ImageDrawing>
</DrawingGroup>
</DrawingGroup>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="RevaluatorVideoCashOnly-Cash" TargetType="UserControl">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Control">
<ControlTemplate.Resources>
<Storyboard x:Key="Animation0" BeginTime="00:00:00" RepeatBehavior="Forever" Duration="00:00:02">
<DoubleAnimation From="1" Duration="00:00:01" Storyboard.TargetName="ellipse0" Storyboard.TargetProperty="Opacity" To="0" />
</Storyboard>
</ControlTemplate.Resources>
<ControlTemplate.Triggers>
<Trigger Property="IsVisible" Value="true">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Animation0}" x:Name="Storyboard0" />
</Trigger.EnterActions>
<Trigger.ExitActions>
<StopStoryboard BeginStoryboardName="Storyboard0"/>
</Trigger.ExitActions>
</Trigger>
</ControlTemplate.Triggers>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<Grid>
<Viewbox>
<Canvas Name="canvas" Height="450" Width="200">
<UserControl Style="{StaticResource RevaluatorBildCashOnly}" Height="{Binding ElementName=canvas, Path=ActualHeight}" Width="{Binding ElementName=canvas, Path=ActualWidth}" ></UserControl>
<Ellipse x:Name="ellipse0" Width="96" Height="65" Canvas.Left="52" Canvas.Top="242" StrokeThickness="6" Stroke="red" Visibility="Visible" HorizontalAlignment="Center" VerticalAlignment="Top"/>
</Canvas>
</Viewbox>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Adding Dictionary:
DirectoryInfo directoryInfo = new DirectoryInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) @"/Resources/");
foreach (FileInfo item in directoryInfo.GetFiles())
{
ResourceDictionary myResourceDictionary = new ResourceDictionary();
myResourceDictionary.Source = new Uri(item.FullName, UriKind.Absolute);
Application.Current.Resources.MergedDictionaries.Add(myResourceDictionary);
}
View where style is used:
<Page x:Class="Aufwerter.Views.RevalueManual"
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"
mc:Ignorable="d"
xmlns:svg="http://sharpvectors.codeplex.com/runtime/"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:c1="clr-namespace:Aufwerter.Converter"
Title="MainWindow" d:DesignHeight="1200" d:DesignWidth="1920" xmlns:prism="http://prismlibrary.com/"
prism:ViewModelLocator.AutoWireViewModel="True"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:viewmodels="clr-namespace:Aufwerter.ViewModels" d:DataContext="{d:DesignInstance Type=viewmodels:RevalueManualViewModel}" Unloaded="Page_Unloaded">
<UserControl Grid.Column="1" HorizontalAlignment="Stretch" Visibility="{Binding IsMediaElementPlaceCardVisible, Converter={StaticResource BoolToVis}}">
<UserControl.Style>
<Binding Converter="{StaticResource VideoSelectorConverter }">
<Binding.Source>
<sys:String>Cash</sys:String>
</Binding.Source>
</Binding>
</UserControl.Style>
</UserControl>
Converter that returns styles to Views:
return Application.Current.FindResource("RevaluatorVideoCashOnly-Cash") as Style;
How can i get this working?
CodePudding user response:
You should inlude the actual namespace and assembly name in the loose (uncompiled) XAML, i.e. replace xmlns:svg="http://sharpvectors.codeplex.com/runtime/"
with a namespace mapping for each type that you use.
For example, for EmbeddedBitmapSource
it's:
xmlns:svg="clr-namespace:SharpVectors.Runtime;assembly=SharpVectors.Runtime.Wpf"