2011-11-23 37 views
0

我有,当我点击它我想显示网格,其visbility设置为0如何访问Silverlight的网格

我创建了一个鼠标按键事件(见下文),但我的一个按钮叫测试按钮的网格(testGrid)在项目中不可用。

private void testButton(object sender, System.Windows.Input.MouseButtonEventArgs e) 
     {  
      testGrid.Opacity = 1;                    
     } 

它突出testGrid红色

新在SL所以不知道怎么回事就在这里

**编辑**

XML为网格

<Grid x:Name="testGrid" HorizontalAlignment="Left" Width="150" Margin="950,-77,0,0" Height="77" VerticalAlignment="Top" Opacity="0"> 

    </Grid> 



<Image x:Name="testButton" HorizontalAlignment="Right" Margin="0,1,180,3" Stretch="Fill" Width="53" Height="49" Cursor="Hand" Opacity="0.8" > 
+0

我们需要看到的XAML和更多的代码将是一件好事 –

+0

我加了XAML。我想像Grid GridGrid = FindName(“”)??? – Autolycus

+0

你不应该使用FindName,应该在你的构造函数中调用的InitializeComponent中为你完成。您可能想要转到构造函数,单击右键,然后转到定义并查看是否生成了testGrid声明。 –

回答

1

试试这个: 在XAML

<Grid x:Name="testGrid" HorizontalAlignment="Left" Width="150" Margin="950,-77,0,0" Height="77" VerticalAlignment="Top" Opacity="0"> 
</Grid> 
<Image x:Name="testButton" HorizontalAlignment="Right" Margin="0,1,180,3" Stretch="Fill" Width="53" Height="49" Cursor="Hand" Opacity="0.8" MouseLeftButtonDown="testButton" /> 

在CS

private void testButton(object sender, System.Windows.Input.MouseButtonEventArgs e){  
     testGrid.Visibility = Visibility.Visible; 
} 
2

的原因您的网格可能无法在.cs文件中访问,如果您已更改t中的类名称他的.cs文件,但不在您的.xaml文件顶部的Xaml指令中。

如果这两个错误匹配,Visual Studio将无法链接这两个文件,因此您将无法在代码后面看到网格控件。

与您的代码的其他项目要考虑:

虽然不透明度会工作,我用更多的时候是一种替代方案:

这将显示网格。

testGrid.Visibility = Visibility.Visible; 

这会隐藏网格。

testGrid.Visibility = Visibility.Collapsed; 

此外,您的“按钮”是一个图片标记,而不是一个按钮。这是一个与您尝试呼叫的方法同名的图像。你要么需要改变你的形象,让一个上点击事件或将其更改为一个按钮,像

<Button Click="TestBUtton" Text="MyButton" /> 

而且我在XAML输入直接,这样当你在click事件类型处理程序它会自动在后面的代码中为您生成该方法。

+0

虽然我同意可见性比不透明度更有效,但问题是关于testGrid的支持字段没有被生成并且存在编译时错误的事实。 –

+0

@公平评论。但是我希望通过改变按钮和链接到testGrid不可用的原因后面的代码可能会变得明显。 – Chris

+0

公平不够,试图删除-1,但它不会让我。我现在认为OP改变了类名,并没有在XAML中改变它,所以代码生成了碎片。 –