Wie verwenden von xaml-Vektor-Bilder als Bild-Quelle in Windows 8 app
Ich habe einige Vermögenswerte in inkscape und würde Sie gerne benutzen als Symbole in einer windows 8-Anwendung. Ich habe getan etwas zu Lesen und es scheint, dass, während .Net 4.5 unterstützt SVG, die modern-ui-Profil nicht. Ich wandelte die svg zu xaml mit dieses tool.
Bekomme ich die folgende xaml.
<Canvas xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="svg2997" Width="744.09448" Height="1052.3622" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Canvas x:Name="layer1">
<Path Fill="#FFCCCCCC" Stroke="#FF000000" StrokeThickness="1.34377062" StrokeMiterLimit="4" x:Name="path3007" Data="M372.58272,134.72445C167.96301,134.72445 2.06820310000001,300.58818 2.06820310000001,505.20789 2.06820310000001,709.8276 167.96301,875.72241 372.58272,875.72241 577.20243,875.72241 743.06616,709.8276 743.06616,505.20789 743.06616,300.58818 577.20243,134.72445 372.58272,134.72445z M280.73888,251.77484L455.94149,251.77484 455.94149,413.70594 628.16035,413.70594 628.16035,588.97071 455.94149,588.97071 455.94149,773.71514 280.73888,773.71514 280.73888,588.97071 106.22005,588.97071 106.22005,413.70594 280.73888,413.70594 280.73888,251.77484z" />
</Canvas>
</Canvas>
Wenn ich diese direkt an meine apps mit xaml machen wird es sich jedoch die Waage ist Weg.
Ich würde gerne verwenden Sie diese als Bild-Quelle für ein Bild-Objekt, wenn möglich.
<Image HorizontalAlignment="Left" Height="100" Margin="127,37,0,0" VerticalAlignment="Top" Width="100" Source="Assets/plus_circle.xaml"/>
Kann das getan werden?
- Was ist der xaml-element, das das Bild enthält Elemente? Was passiert, Seitenverhältnis, wenn Sie entfernen, Breite, Höhe und / oder margin-Attribute von image-element?
- Die Hierarchie <UserControl><Raster><Image />. Nicht sicher, was du meinst, von 'aspect ratio'? Mit dem obigen code, ich kann nicht das Bild angezeigt.
- "Wenn ich diese direkt an meine apps mit xaml machen wird es sich jedoch die Waage ist Weg." - Ich war keying aus, dass der Satz über das Seitenverhältnis. Es war nicht klar für mich, wenn ich lese Ihre Frage das erste mal, dass Sie nicht bekommen es auf dem display an, wenn alle, die mit Bild-Quelle - aber es ist ziemlich klar, in den Titel...
- Hast du unter stackoverflow.com/questions/1107334/... ?
- Ich sah es, aber ich denke, es hat nicht Klick. Danke für die Hilfe, Nathan.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meisten AppBar buttons basieren auf einem Stil, aufgenommen in StandardStyles genannt AppBarButtonStyle.
Anpassen der text der Schaltfläche setzen Sie die AutomationProperties.Name angefügte Eigenschaft, anpassen das Symbol in der Schaltfläche legen Sie die Inhalt Eigenschaft, und es ist auch eine gute Idee, um die AutomationProperties.AutomationId angefügte Eigenschaft für die Zugänglichkeit von Gründen.
Hier ist ein Beispiel für eine Schaltfläche individuell mit Hilfe dieses Ansatzes:
Wie oben erwähnt, zur Anpassung der Symbol legen Sie die Inhalt Eigenschaft. Die Herausforderung ist, wie man die Inhalte, so zeigt es Ihre Gewohnheit Vektorgrafiken.
Es stellt sich heraus, Sie können jeden Pfad Xaml, auch deine, in eine Viewbox ändern Sie den Maßstab. Das war mein Erster Ansatz, aber es funktioniert nicht. In der Tat, es scheint, jedes mal, wenn Sie mit Xaml erweitert notation um die Inhalt Eigenschaft für ein button-es funktioniert nicht.
Eigentlich denke ich, das ist ein bug, aber zum Glück gibt es einen workaround.
Tim Heuer schrieb ein ausgezeichnete Artikel auf die einfachste Art der Verwendung von Xaml Pfad wie die Grafik für einen button. Dass dieser Artikel hier:
http://timheuer.com/blog/archive/2012/09/03/using-vectors-as-appbar-button-icons.aspx
Kurz gesagt, müssen Sie einen Stil definieren, der festlegt, bis alle Bindungen richtig:
Dann erstellen Sie einen Stil, erbt von diesem Stil, und Sie fügen Sie in Ihrem Pfad. Hier ist das Format für Ihre Grafik, die Sie oben aufgeführt sind:
Und schließlich, verwenden Sie es in Ihre AppBar, wie diese:
Dev-support, design support und mehr awesome Güte auf den Weg:
http://bit.ly/winappsupport
Ich bin ziemlich positiv, man kann nicht einfach injizieren
Path
Data
in eineImage
Source
und erwarten, dass es magisch zu arbeiten, es sei denn, es ist durch eine Zeichnung Objekt als Quelle. Was können Sie jedoch tun ist, nehmen IhrePath
in eineContentControl
für die Wiederverwendung in der gleichen Weise, ohne zu gehen durch die Mühe derDrawing
Objekte für jede Instanz.Also statt;
Nur so etwas tun und plop es in Ihrem
Object.Resources
oderResourceDictionary
;Dann nur plop es auf Ihre anzeigen, wo und wie viele Male, wie Sie möchten;
Werden Sie jedoch spielen wollen, die Weg von Ihnen. Es scheint, setzen Sie eine große Größe, aber ich hoffe, dies bietet eine gute alternative für Ihre Umstand. Prost!