目前我创建并显示了这个图形(黄色是图,黑色是背景):
有关该图的信息以XML格式存储,并在启动时加载到系统中。
<Part Name="Test" Description="Test description" Geometry="M 0,0 L 20,0 L 20,20 L 0,20 Z M 0,40 L 20,40 L 20,60 L 0,60 Z M 80,0 L 100,0 L100,20 L 80,20 Z M 80,40 L 100,40 L 100,60 L 80,60 Z M 20,0 L 80,0 L 80,60 L 20,60 Z" Color="Yellow" Height="60" Width="100"/>
然后,该信息用于填充具有以下内容的类:
尺寸,几何和颜色属性以及其他不太相关的数据,如名称,描述等。
我使用带路径的Canvas在XAML视图中显示它:
<Canvas Grid.Row="1" Width="75" Height="75" HorizontalAlignment="Left" VerticalAlignment="Center" ToolTipService.ToolTip="{Binding Description}">
<Path HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Data="{Binding Geometry}" Stroke="{Binding StrokeColor}" StrokeThickness="1" Fill="{Binding Color}" Width="{Binding Size.Width}" Height="{Binding Size.Height}"/>
</Canvas>
一切正常。但是要求已经出现,以便形状的四个向外的块必须具有不同的颜色。
由于这是一个Path,它只能有一个Color。同时,就我所知,没有颜色可用于几何。
所以我需要将原始几何体分成多个小几何体。然后从中创建多个路径,并以某种方式将它们组合在一起,以便能够正确显示它。
可能是这样的XML结构:
<Part Name="Test" etc>
<Geometries>
<GeometryPart Geometry="M 0,0 L 20,0 L 20,20 L 0,20" Color="White">
<GeometryPart Geometry="M 0,40 L 20,40 L 20,60 L 0,60" Color="White">
<GeometryPart Geometry="M 0,40 L 20,40 L 20,60 L 0,60" Color="White">
<GeometryPart Geometry="M 0,40 L 20,40 L 20,60 L 0,60" Color="White">
<GeometryPart Geometry="M 0,40 L 20,40 L 20,60 L 0,60" Color="Yellow">
</Geometries>
</Part
我一直在使用这个想法作为尝试直接在XAML视图/代码后面创建内容的基础,以创建示例图并显示它。但经过一段时间后,我仍然没有找到任何好的解决方案。
有人对我有任何建议/指示吗?
祝你好运 托马斯
答案 0 :(得分:1)
最简单的解决方案是只使用LinearGradientBrush
在Path
的中心显示黄色。使用Rectangle
:
<Rectangle Width="500" Height="250" Stroke="Black" StrokeThickness="1">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="Transparent" Offset="0" />
<GradientStop Color="Transparent" Offset="0.25" />
<GradientStop Color="Yellow" Offset="0.25001" />
<GradientStop Color="Yellow" Offset="0.74999" />
<GradientStop Color="Transparent" Offset="0.75" />
<GradientStop Color="Transparent" Offset="1" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
这就是它的样子: