gpt4 book ai didi

wpf - 如何在 WPF 中的圆中创建一个带孔的圆?

转载 作者:行者123 更新时间:2023-12-04 05:00:58 24 4
gpt4 key购买 nike

我创建了一个 UserControl,它是一个环形,通过叠加 2 个圆圈,小圆圈是空白的,第二个圆圈后面是彩色的。

在我的 WPF 应用程序中,我想放置几个环,但小圆圈确实隐藏了其他环。我想看透它并捕获鼠标事件以用于其他环后面的环,否则它不是真正的环。是否可以 ?

正如对 http://social.msdn.microsoft.com/forums/en-US/wpf/thread/551201d1-c5b3-4e17-ae63-625cfbb8bcc4 的回答所指出的,我尝试使用 OpacityMask 来制作小椭圆但仍然看不到孔后面的环:

<UserControl x:Class="MyUserControls.MyRing"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="150" d:DesignWidth="150" SizeChanged="UserControl_SizeChanged">
<Grid Height="150" Name="Grid" Width="150" MouseMove="ellipse1_MouseMove">
<Ellipse Fill="Red" Height="150" Width="150" HorizontalAlignment="Left" Margin="0,0,0,0" Name="ellipse1" Stroke="Black" VerticalAlignment="Top" >
<Ellipse.OpacityMask>
<RadialGradientBrush>
<GradientStop Color="#FFB94444" Offset="0.496"/>
<GradientStop Color="#00FFFFFF" Offset="0.491"/>
</RadialGradientBrush>
</Ellipse.OpacityMask>
</Ellipse>
<Ellipse Fill="White" Height="100" Width="100" Margin="25,25,25,0" Name="ellipse2" Stroke="Black" VerticalAlignment="Top" />
</Grid>
</UserControl>

enter image description here

最佳答案

看起来您已经找到了答案(几年前),但是对于其他想要这样做的人,您可能需要查看 CompositeGeometry:

http://msdn.microsoft.com/en-us/library/ms751808.aspx#combindgeometriessection

如:

<Path Fill="Red" Stroke="Black">
<Path.Data>
<CombinedGeometry GeometryCombineMode="Xor">
<CombinedGeometry.Geometry1>
<EllipseGeometry RadiusX="75" RadiusY="75" Center="75,75" />
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
</CombinedGeometry.Geometry2>
</CombinedGeometry>
</Path.Data>
</Path>

然后 IsHitTestVisible="False"应在需要时防止鼠标干扰。

关于wpf - 如何在 WPF 中的圆中创建一个带孔的圆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com