【发布时间】:2014-03-14 06:40:08
【问题描述】:
我在 XAML 中创建了 Ellipse。
代码如下:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Ellipse Width="400" Stroke="DodgerBlue" Height="400" StrokeThickness="75" Fill="Transparent">
</Ellipse>
</Grid>
假设椭圆是 100%,如果它的 20% 蓝色应该只填充到该位置,并且还在椭圆的中心(空白区域)显示百分比文本。
编辑
我已添加要在中心显示的文本。
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Ellipse Width="400" Stroke="DodgerBlue" Height="400" StrokeThickness="75" Fill="Transparent">
</Ellipse>
<TextBlock VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="20"
FontSize="125"/>
</Grid>
编辑 2
这是我想要达到的效果:
这里是橙色,填充率为 20%。
【问题讨论】:
-
您要填充蓝色边框,还是填充内部 - 当前透明 - 内容?
-
@Herdo 现在显示完全填充的蓝色,应该只填充 100 个中的 20 个(总椭圆),如果 80% 则填充 80% 椭圆,内部空应该为是
-
您可以在
TextBlock.Text属性中设置百分比(如果您使用例如 mvvm 设计模式,您可能会使用绑定),对于Ellipse.StrokeThickness,请参阅TextBlock.Text属性(或绑定),并应用将百分比转换为StrokeThickness的值的转换器。 -
@Herdo 这也很好,就像现在用蓝色填充一样,在此之上再填充一种颜色,比如红色,20% 或 80%
-
然后在当前的上方创建第二个
Ellipse,使其Fill透明并将上述逻辑应用于此椭圆。
标签: c# wpf xaml windows-phone ellipse