我遇到了与这篇文章类似的问题:无法通过实例引用访问成员“<method>”,但答案没有为我提供解决方案。
我在 a 中有一个简单的,我想使用静态方法 SetZIndex 来更改该值,以便每个圆圈在单击时都会出现在顶部。
xml在这里...
<Window x:Class="Canvas.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Canvas x:Name="Circles">
<Ellipse x:Name="Circle_Blue" Fill="Blue" Canvas.Top="25" Canvas.Left="25" Height="100" Width="100" MouseDown="Circle_Blue_MouseDown"></Ellipse>
<Ellipse x:Name="Circle_Red" Fill="Red" Height="100" Width="100" MouseDown="Circle_Red_MouseDown"></Ellipse>
<Ellipse x:Name="Circle_Green" Fill="Green" Canvas.Left="50" Height="100" Width="100" MouseDown="Circle_Green_MouseDown"></Ellipse>
</Canvas>
这是生成以下错误的代码行:“System.Windows.Window”不包含“SetZIndex”的定义,并且没有接受“System.Windows.Window”类型的第一个参数的扩展方法“SetZIndex”可以被发现(您是否缺少 using 指令或程序集引用?)
int Circle_Blue_index = 1;
int Circle_Red_index = 2;
int Circle_Green_index = 3;
private void Circle_Green_MouseDown(object sender, MouseButtonEventArgs e)
{
if (Circle_Blue_index != 3)
Circle_Blue_index = 3;
if (Circle_Red_index != 1)
Circle_Red_index = Circle_Red_index -=1;
if (Circle_Green_index != 1)
Circle_Green_index = Circle_Green_index -=1;
Canvas.MainWindow.GetWindow(Circles).SetZIndex(Circle_Blue, Circle_Blue_index);
}
我曾尝试使用语法 ClassName.Control.Property 但看起来我做错了什么。