/ / Jak przechowywać i pobierać wiele kształtów w XAML / WPF? - wpf, vb.net, xaml, zasoby, kształt

Jak przechowywać i pobierać wiele kształtów w XAML / WPF? - wpf, vb.net, xaml, zasoby, kształt

Wydaje się mieć wiele problemów z robieniem czegopowinno być proste z XAML / WPF - Stworzyłem obrazy oparte na XAML przy użyciu kształtów takich jak Rectangle i Ellipse, aby stworzyć ikony, do których potrzebuję innych części aplikacji - ale nie mogę się tego dowiedzieć - I wydaje się być w stanie przechowywać płótno w słowniku zasobów, ale nie ma możliwości użycia go w innym oknie. Jak to się robi - to są proste obrazy, tylko dwa lub trzy kształty, których chcę użyć w całym moim projekcie!
Obrazy muszą być również skalowalne - wiem, jak przechowywać ścieżki, jednak te kształty zawierają style gradientów, które chcę zachować, a także nie wiem, w jaki sposób prostokąt mógł przekształcić dane ścieżki i koloru.

Dzięki!

Odpowiedzi:

7 dla odpowiedzi № 1

Powinieneś użyć Rysunku i wyświetlić go za pomocą DrawingBrush, jak sugeruje KP Adrian lub DrawingImage i kontrolka Image, ale jeśli nie możesz użyć rysunku, możesz użyć Canvas w VisualBrush.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<VisualBrush x:Key="Icon">
<VisualBrush.Visual>
<Canvas Width="10" Height="10">
<Ellipse Width="5" Height="5" Fill="Red"/>
<Ellipse Width="5" Height="5" Fill="Blue" Canvas.Left="5" Canvas.Top="5"/>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
</Page.Resources>
<Rectangle Width="100" Height="100" Fill="{StaticResource Icon}"/>
</Page>

3 dla odpowiedzi № 2

Nie chcesz używać płótna do przechowywaniate zasoby w słowniku zasobów. Korzeń twojej geometrii jest prawdopodobnie czymś w rodzaju DrawingBrush (szczególnie jeśli użyłeś Expression Design do tworzenia obrazów), a to są elementy, które trzeba dodać do Słownika zasobów, jak na przykład:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DrawingBrush x:Key="YourResourceKey">
<DrawingBrush.Drawing>
<DrawingGroup>
<!-- This can change a lot, but a typical XAML file exported from a Design image would have the geometry of the image here as a bunch of Paths or GeometryDrawings -->
</DrawingGroup>
</DrawingBrush.Drawing>
</ResourceDictionary>

Zakładam, że wiesz, jak uzyskać ten Słownik zasobów wymieniony w twojej aplikacji.

Aby użyć zasobów, po prostu przydzieliszje do odpowiednich właściwości. W przypadku obrazów o kształcie, możesz przypisać je do czegoś podobnego do właściwości Wypełnienie prostokąta (istnieje wiele innych sposobów, ale jest to proste). Oto jeden przykład:

<Button>
<Grid>
<Rectangle Fill="{StaticResource YourResourceKey}" />
</Grid>
</Button>