2016-06-13 13 views
5

I ein Vektor-Bild in einer XAML-DateiEinschließlich XAML Bild in Resource mit Design-Vorschau-Funktion

Image.xaml

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="appbar_power" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0"> 
    <Path Width="38" Height="41.1667" Canvas.Left="19" Canvas.Top="17.4167" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 36.4167,36.4167L 36.4167,17.4167L 41.1667,17.4167L 41.1667,36.4167L 36.4167,36.4167 Z M 57,39.5833C 57,50.0767 48.4934,58.5833 38,58.5833C 27.5066,58.5833 19,50.0767 19,39.5833C 19,30.7301 25.0552,23.2911 33.25,21.1819L 33.25,27.8374C 28.6079,29.7165 25.3333,34.2675 25.3333,39.5833C 25.3333,46.5789 31.0044,52.25 38,52.25C 44.9956,52.25 50.6667,46.5789 50.6667,39.5833C 50.6667,34.8949 48.1194,30.8014 44.3333,28.6113L 44.3333,21.6645C 51.7129,24.2728 57,31.3106 57,39.5833 Z "/> 
</Canvas> 

Wenn ich XAML-Code dieses Bildes ändern definiert haben (für das Beispiel Füll-Eigenschaft des Pfades) Die Änderungen werden sofort im Design-Fenster von Visual Studio 2015 angezeigt.

Jetzt möchte ich ein ResourceDictionary erstellen, das auf dieses Bild verweist. Ich habe den XAML-Code direkt in das ResourceDictionary eingefügt, aber in diesem Fall verliere ich die Fähigkeit, eine Vorschau zu haben (Designfenster ist in Visual Studio nicht verfügbar, ich bekomme "MyResourceDictionary.xaml kann nicht in der Design-Ansicht bearbeitet werden").

MyResourceDictionary.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:Project.XamlResources"> 

    <Canvas x:Key="appbar_power" x:Name="appbar_power" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0"> 
     <Path Width="38" Height="41" Canvas.Left="19" Canvas.Top="17" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 36.4167,36.4167L 36.4167,17.4167L 41.1667,17.4167L 41.1667,36.4167L 36.4167,36.4167 Z M 57,39.5833C 57,50.0767 48.4934,58.5833 38,58.5833C 27.5066,58.5833 19,50.0767 19,39.5833C 19,30.7301 25.0552,23.2911 33.25,21.1819L 33.25,27.8374C 28.6079,29.7165 25.3333,34.2675 25.3333,39.5833C 25.3333,46.5789 31.0044,52.25 38,52.25C 44.9956,52.25 50.6667,46.5789 50.6667,39.5833C 50.6667,34.8949 48.1194,30.8014 44.3333,28.6113L 44.3333,21.6645C 51.7129,24.2728 57,31.3106 57,39.5833 Z "/> 
    </Canvas> 

</ResourceDictionary> 

Gibt es eine Möglichkeit, die Ressourcenverzeichnis in ähnlicher Weise wie die folgenden zu erstellen:

MyResourceDictionary_new.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       xmlns:local="clr-namespace:Project.XamlResources"> 

<refers_to "Image.xaml"> 

</ResourceDictionary> 
+0

Vielleicht [diese Antwort] (http://stackoverflow.com/a/18657314/1977778) könnte Ihnen helfen; es scheint direkt mit Ihrer Frage in Verbindung zu stehen, \t obwohl es keine effektive Lösung darauf hinweist ... – sentenza

Antwort

2

Hoffentlich Ich verstehe deine Absicht richtig. Wenn nicht, lassen Sie es mich wissen, aber das würde ich wahrscheinlich tun.

Wir nehmen Ihre Path und konvertieren Sie es zu einem Stil für das Ressourcenwörterbuch, in dem dies;

<Canvas x:Key="appbar_power" x:Name="appbar_power" 
     Width="76" Height="76" 
     Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0"> 
    <Path Width="38" Height="41" Canvas.Left="19" Canvas.Top="17" 
      Stretch="Fill" Fill="#FFFFFFFF" 
      Data="F1 M 36.4167,36.4167L 36.4167,17.4167L 41.1667,17.4167L 41.1667,36.4167L 36.4167,36.4167 Z M 57,39.5833C 57,50.0767 48.4934,58.5833 38,58.5833C 27.5066,58.5833 19,50.0767 19,39.5833C 19,30.7301 25.0552,23.2911 33.25,21.1819L 33.25,27.8374C 28.6079,29.7165 25.3333,34.2675 25.3333,39.5833C 25.3333,46.5789 31.0044,52.25 38,52.25C 44.9956,52.25 50.6667,46.5789 50.6667,39.5833C 50.6667,34.8949 48.1194,30.8014 44.3333,28.6113L 44.3333,21.6645C 51.7129,24.2728 57,31.3106 57,39.5833 Z "/> 
</Canvas> 

Wird in dieses konvertiert und in Ihr Ressourcenwörterbuch eingefügt;

<Style x:Key="appbar_power" TargetType="{x:Type Path}"> 
    <Setter Property="Width" Value="38"/> 
    <Setter Property="Height" Value="41"/> 
    <Setter Property="Stretch" Value="Fill"/> 
    <Setter Property="Fill" Value="#FFFFFFFF"/> 
    <Setter Property="Data" Value="F1 M 36.4167,36.4167L 36.4167,17.4167L 41.1667,17.4167L 41.1667,36.4167L 36.4167,36.4167 Z M 57,39.5833C 57,50.0767 48.4934,58.5833 38,58.5833C 27.5066,58.5833 19,50.0767 19,39.5833C 19,30.7301 25.0552,23.2911 33.25,21.1819L 33.25,27.8374C 28.6079,29.7165 25.3333,34.2675 25.3333,39.5833C 25.3333,46.5789 31.0044,52.25 38,52.25C 44.9956,52.25 50.6667,46.5789 50.6667,39.5833C 50.6667,34.8949 48.1194,30.8014 44.3333,28.6113L 44.3333,21.6645C 51.7129,24.2728 57,31.3106 57,39.5833 Z"/> 
</Style> 

Von dem, was ich Ihren ursprünglich Eltern sagen konnte Canvas war nicht notwendig, und ich nahm nur waren nur übrig gebliebenen Sachen aus einem WYSIWYG-Editor mit dem Sie das Asset aus, da die Namensräume überflüssig wären und der Clip taten nichts?

So ist jetzt Ihre Path eine tatsächliche Vorlage. Wir benutzen es jetzt bei der Instanz;

<Path Style="{StaticResource appbar_power}"/> 

die noch Sie Ihre Eigenschaften wie festlegen können, wenn Sie Fill="Red" ändern wollte oder was auch immer Sie tun müssen. Die Antwort auf Ihre Frage lautet nun: Wenn Sie sich in Ihrer Design-Ansicht oder in der Dokument-Gliederung befinden, bearbeiten Sie einfach die Vorlage live, so dass Ihre Änderungen sofort im Design-Fenster, aber vom Ressourcenwörterbuch (Sie werden bemerken, dass sich das Fenster ändert).

Auch ist Blend wirklich praktisch für jede Ressource Asset Arbeit, die VS nicht intuitiv bietet. Hoffe, das hilft, Prost.

NACHTRAG:

Wenn Sie es gerade aus der Ressourcen-Wörterbuch tun wollen, so dass Sie bei all Ihre Ressourcen dort sehen können, wenn Sie sich nur Ihre Ressource Wörterbuch öffnen und öffnen Sie die Registerkarte Ressourcen.Fügen Sie ein x:Name zu der Vorlage Style hinzu und führen Sie es aus. Ich benutze Blend persönlich dafür. Jetzt sehen Sie jedoch Ihre Vorlage auf Ihrer Ressourcen-Registerkarte und Sie können entweder doppelklicken oder mit der rechten Maustaste auf -> Bearbeiten klicken. Dadurch können Sie alles in Ihrem Ressourcenwörterbuch aktiv bearbeiten. Bildbeispiel von Blend;

enter image description here

+0

Nicht genau, was ich suchte, aber nette Arbeit herum! Ich denke, ich kann leicht mit Ihrem Vorschlag arbeiten! Danke vielmals! – aDone

+0

Oh Shooting, ich hatte Angst, ich habe nicht genau verstanden, was Sie wollten? Wollen Sie nur Ihr Ressourcenverzeichnis öffnen und Vorlagen direkt daraus bearbeiten? Wir können das auch tun ... –

+0

Super! Damit denke ich, dass es für mich funktionieren kann: Danke! – aDone