我尝试创建一个简单的符号/几何体/控件,并在同一个窗口中的多个位置更改和重用它。
例如:一个黑色的正方形,中间有一个圆。
圆应该在红色和绿色之间切换(类似于单灯红绿灯)。使用图像也可以实现。我尝试将其作为窗口资源解决,但我不理解。
我的想法是将它写入资源中,在这里我尝试将它写入画布中:
<Window.Resources>
<Canvas x:Key="Ampel">
<Rectangle Fill="Black" HorizontalAlignment="Left" Height="52" Stroke="Black" VerticalAlignment="Top" Width="50"/>
<Ellipse x:Name="RedGreen" Fill="Red" HorizontalAlignment="Left" Height="27" Margin="11,12,0,0" Stroke="Black" VerticalAlignment="Top" Width="28" RenderTransformOrigin="0.214,0.256"/>
</Canvas>
</Window.Resources>
那么我想将它放在一个 Grid 或者 Panel 中,但是如何引用它呢?
<Canvas x:Name="RedGreen1" Height="50" Width="50" DataContext="{DynamicResource Ampel}" />
这段代码并不会返回编译错误,但窗口中也没有显示任何内容。它也无法与WrapPanel或其他任何控件一起使用。
如果它能够工作,我该如何在代码中引用它以改变圆形的颜色呢?类似于RedGreen1.RedGreen.Fill=Brushes.Green
这样的语句?
我读了有关交通信号灯的文章。是否真的需要创建一个UserControl,还是可以通过window.resources解决问题?
应用程序的基本想法是有一个参数列表,每个参数都有一个正确的输入值,标记为绿色,并且只有所有参数都标记为绿色时才能开始计算。
即使我使用红/绿图像使其运行,我仍然希望更好地理解WPF / XAML并学到更多。
谢谢。
x:Shared="False"
起了作用。有趣的是它在自动完成中不会显示。 - JobaDiniz