<Viewport3D>:隐藏元素识别
<Viewport3D>: Hidden element identification
我有一个 XAML 布局:
<f:FlipPanel x:Name="flipper" Height="90" Width="90">
<f:FlipPanel.Front>
<Canvas x:Name="Empty_Frame" Visibility="Visible">
<Path Stroke="#FFBCC2AB" StrokeThickness="2">
<Path.Data>
<GeometryGroup FillRule="EvenOdd">
... <!-- There are a lot of geometric elements -->
</Canvas>
</f:FlipPanel.Front>
<f:FlipPanel.Back>
... <!-- There are a lot of geometric elements -->
</f:FlipPanel.Back>
</f:FlipPanel>
FlipPanel 是一个取自第三方库的复杂组件。在执行期间,我需要用另一组元素替换 <Canvas>
。
"Search-delete" 代码无效:
var ecanvas = flipper.Children.OfType<Canvas>().FirstOrDefault(x => x.Name == "Empty_Frame");
flipper.Children.Remove(ecanvas);
原因在于面板上隐藏的中间元素<Viewport3D>
。
问题:如何获取此隐藏元素的 link 以使用它(添加和删除元素)?
我不知道 FlipPanel 是如何工作的,但实际上你并没有将 Canvas 添加到它的 Children 集合中,而是将它放入 FlipPanel 的 'Front' 属性。如果您想删除 canvas,请尝试以下操作:
flipper.Front = null;
为了在其中放置一个新元素:
flipper.Front = myNewElement;
我有一个 XAML 布局:
<f:FlipPanel x:Name="flipper" Height="90" Width="90">
<f:FlipPanel.Front>
<Canvas x:Name="Empty_Frame" Visibility="Visible">
<Path Stroke="#FFBCC2AB" StrokeThickness="2">
<Path.Data>
<GeometryGroup FillRule="EvenOdd">
... <!-- There are a lot of geometric elements -->
</Canvas>
</f:FlipPanel.Front>
<f:FlipPanel.Back>
... <!-- There are a lot of geometric elements -->
</f:FlipPanel.Back>
</f:FlipPanel>
FlipPanel 是一个取自第三方库的复杂组件。在执行期间,我需要用另一组元素替换 <Canvas>
。
"Search-delete" 代码无效:
var ecanvas = flipper.Children.OfType<Canvas>().FirstOrDefault(x => x.Name == "Empty_Frame");
flipper.Children.Remove(ecanvas);
原因在于面板上隐藏的中间元素<Viewport3D>
。
问题:如何获取此隐藏元素的 link 以使用它(添加和删除元素)?
我不知道 FlipPanel 是如何工作的,但实际上你并没有将 Canvas 添加到它的 Children 集合中,而是将它放入 FlipPanel 的 'Front' 属性。如果您想删除 canvas,请尝试以下操作:
flipper.Front = null;
为了在其中放置一个新元素:
flipper.Front = myNewElement;