我正在使用一个
我将绑定到资源名称,并使用一个
如果资源是一个
这是Viewbox声明的样子。
Viewbox
创建一组图标,我将动态绑定到 WPF 视图。我将绑定到资源名称,并使用一个
Converter
将资源名称转换为 ImageSource
。如果资源是一个
Path
,我知道如何做,但如果是 Viewbox
,该怎么办?
This is how I convert the resource name, if the resource is a Path
, to an 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);
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>