2011-05-07 82 views
1

我正在嘗試將圖像添加到WPF中的togglebutton - C#中。事情是,我正在處理的任務不能使用XAML完成。我試圖將Content屬性設置爲圖像,但我得到的只是一個普通的togglebutton,根本沒有幫助我的事業。如何在不使用XAML的情況下將圖像添加到Togglebutton?

myToggleButton = new ToggleButton(); 
    myImage = new Image(); 
    BitmapImage bmi = new BitmapImage(); 
    bmi.BeginInit(); 
    bmi.UriSource = new Uri("myImageResource.bmp", UriKind.Relative); 
    bmi.EndInit(); 
    myImage.Source = bmi; 
    myToggleButton.Content = myImage; 

希望我提供了足夠的信息,如果不是,請詢問更多。

更新@Phil賴特:

當我的廣告是這樣的形象:

myImage = new Image(); 
    BitmapImage bmi = new BitmapImage(); 
    bmi.BeginInit(); 
    bmi.UriSource = new Uri("myImageResource.bmp", UriKind.Relative); 
    bmi.EndInit(); 
    myImage.Source = bmi; 

它的工作原理...

更新@馬特西:

myGrid.Children.add(MyToggleButton); // This gives me an empty ToggleButton 
    myGrid.Children.add(MyImage); // This gives me an image with content 
+0

Cosidering最後兩行,你顯然是錯誤土地。你應該嘗試在一個乾淨的項目中做這件事,看看你是否可以在受控條件下重現這一點。 – 2011-05-08 00:13:17

+0

嘗試什麼?並重現什麼? – CornflakesDK 2011-05-08 06:42:22

+0

當然你的血腥問題... – 2011-05-08 08:05:46

回答

1

您正在創建一個新的切換按鈕,但您並未將其添加到任何內容。圖像被添加到切換按鈕,但實際切換按鈕不會作爲子項添加到任何內容。您可能需要在代碼中像這樣的東西添加切換按鈕背後:

this.AddChild(myToggleButton); 

或者,如果你已經在XAML定義的myToggleButton的名稱切換按鈕,然後從你的代碼中刪除上述

這條線
myToggleButton = new ToggleButton(); 
+0

如果您指定切換按鈕的寬度和高度,有幫助嗎? – 2011-05-07 19:57:07

+0

不是。定義寬度和高度只會改變按鈕的大小。如果我定義圖像的寬度和高度,則不會發生任何事情 – CornflakesDK 2011-05-07 20:43:03

0

是您確定提供的位圖資源能夠被定位。如果沒有,那麼圖像將是空的,因此不佔用空間,因此切換按鈕看起來是空的。

1

由於這裏要求的是,在全部對我的作品的代碼:

<Window x:Class="WpfApplication1.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"> 
    <Grid Name="_Root"> 

    </Grid> 
</Window> 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 
using System.Windows.Controls.Primitives; 

namespace WpfApplication1 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 

      var tb = new ToggleButton(); 
      var image = new Image(); 
      BitmapImage bmi = new BitmapImage(); 
      bmi.BeginInit(); 
      bmi.UriSource = new Uri("/Images/6.png", UriKind.Relative); 
      bmi.EndInit(); 
      image.Source = bmi; 
      tb.Content = image; 
      _Root.Children.Add(tb); 
     } 
    } 
} 

圖像是資源的地方;如前所述,最後兩行是沒有意義的,如果你可以讓圖像自行顯示,它也應該顯示在按鈕內部。切換按鈕的

+0

請參閱這裏更奇怪!因爲我只是複製粘貼你的代碼到我的項目,它仍然無法正常工作。猜猜我有一些設置在我的VS中的probs。謝謝你試試! – CornflakesDK 2011-05-09 09:56:42

0

圖像可以這樣設置:

ToggleButton tgb = new ToggleButton(); 
BitmapImage bmi = new BitmapImage(); 
bmi.BeginInit(); 
bmi.UriSource = new Uri("myImageResource.bmp", UriKind.Relative); 
bmi.EndInit(); 
tgb.Content = new Image { Source = bmi }; 
相關問題