Я использую Viewbox
для создания набора значков, которые я буду динамически привязывать к представлению WPF.
Я привязываюсь к имени ресурса и использую Converter
для преобразования имени ресурса в ImageSource
.
Я знаю, как это сделать, если ресурс Path
, но как это сделать с Viewbox
?
Вот как я преобразую имя ресурса, если ресурс Path
, в ImageSource
:
public class ResourceNameToImageSourceConverter : BaseValueConverter {
protected override ImageSource Convert(string value, System.Globalization.CultureInfo culture) {
var resource = new ResourceDictionary();
resource.Source = new Uri("pack://application:,,,/MyAssembly;component/MyResourceFolder/ImageResources.xaml", UriKind.Absolute);
var path = resource[value] as Path;
if (path != null) {
var geometry = path.Data;
var geometryDrawing = new GeometryDrawing();
geometryDrawing.Geometry = geometry;
var drawingImage = new DrawingImage(geometryDrawing);</p>
<pre><code> geometryDrawing.Brush = path.Fill;
geometryDrawing.Pen = new Pen();
drawingImage.Freeze();
return drawingImage;
} else {
return null;
}
}
}
И вот как выглядит объявление Viewbox.
<Viewbox>
<Viewbox>
<Grid>
<Path>
...
</Path>
<Path>
...
</Path>
<Path>
...
</Path>
<Rectangle>
...
</Rectangle>
</Grid>
</Viewbox>
</Viewbox>
</code>