我试图在空椭圆内画一个填充的椭圆(就像一个无线电按钮),整个过程都是可扩展的。
我已经尝试过这种方式(网格看起来很有必要,如果我使用边框,那么比例也不会看起来相同)
<Grid Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="2*" />
<RowDefinition Height="5*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Ellipse Stroke="Black" StrokeThickness="3" Grid.RowSpan="3" Grid.ColumnSpan="3"></Ellipse>
<Ellipse StrokeThickness="0" Fill="Red" Grid.Row="1" Grid.Column="1" />
</Grid>
当控件为30x30时,填充的椭圆看起来不居中,有一个小的偏移(看起来像是从右下角靠近)。 如果我将2-5-2改为1-2-1,它会从左上角看起来更近。
知道它为什么会这样表现吗?更重要的是,我怎样才能真正给它一个更加对称的外观?
提前感谢(对不起我的英语不好)寻求帮助。 (顺便说一句,我使用.Net FW 4.5)
答案 0 :(得分:0)
据我所知,这是因为您的测量结果。您已经说过控件应该是30x30,但是然后您将其分开以使得无法均匀分布:50%到中间列(15个像素)留下15个像素以均匀分布在其他两列之间,不能均匀地完成。
我的建议是将测量设置为更友好的东西,例如32x32(当我尝试时这似乎工作正常并且是典型的方法) - 但是如果你需要它可以真正扩展到任何大小,也许设置一些属性让你的对象忽略&#34;舍入&#34;当元素在像素之间时,WPF会这样做,这是我的建议:
尝试在网格和省略号上设置这些。
答案 1 :(得分:0)
我刚刚将RowDefinitions的高度和宽度从2改为3,这似乎完成了这项工作。
width
似乎可以解决这个问题,但如果要使用大于30x30的控件,可能不是一个好的解决方法