2011-11-23 82 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中改變它,所以代碼生成了碎片。 –