0
我有一個簡單的問題,但因爲這是我第一次在這裏使用C#/ XAML我去。C#添加圖像和處理程序的按鈕
XAML文件包含一個我想在運行時添加可點擊圖像的StackPanel。
<StackPanel x:Name="grid_" Orientation="Horizontal" Margin="10 0 10 0" VerticalAlignment="Center">
</StackPanel>
我沒有在這些圖像創建click事件成功,我讀過,我可以用按鈕嘗試,改變他們的背景。這是我的代碼:
for (int i = 0; i < 20; i++)
{
Button j = new Button();
//Image j = new Image();
//j.Source = new BitmapImage(new Uri("Images/my_thumb.png", UriKind.Relative));
var brush = new ImageBrush();
j.BackgroundImage = brush;
//j.MouseDown += new RoutedEventHandler(this.changeImage);
grid_.Children.Add(j);
Grid.SetRow(j, i);
}
現在,我該如何更改按鈕圖像,並添加一個處理程序來檢索哪個按鈕被點擊?我得到的錯誤是
Error 3 'System.Windows.Controls.Button' does not contain a definition for 'BackgroundImage' and no extension method 'BackgroundImage' accepting a first argument of type 'System.Windows.Controls.Button' could be found (are you missing a using directive or an assembly reference?)
你可以從我的代碼中的註釋,我仍然保留了普通圖像的方式看,只是可以肯定的:如果你知道如何讓我的圖片點擊,請告訴我:)
我可以安定下來的事件處理程序,可以只檢索按鈕圖像源文件名,以防萬一。
您能否指點我正確的方向?請記住我是一個完整的新手! :)
謝謝!
爲什麼FO我有這樣的錯誤?不能將類型'System.EventHandler'隱式轉換爲'System.Windows.RoutedEventHandler'。我的代碼是:「j.Click + = new EventHandler(this.changeImage);」並且我的處理程序是「public void changeImage(Object sender,EventArgs e)」? – senseiwa 2014-10-16 11:23:52
它應該是「public void changeImage(object sender,RoutedEventArgs e)」&&「new RoutedEventHandler(this.changeImage)」 – 2014-10-16 11:33:06
將eventhandler更改爲routedeventhandler – bit 2014-10-16 11:33:12