Bild-Schaltfläche in C# Code-behind

Ich versuche ein Bild im hintergrund in code-behind. Ich habe versucht, das hinzufügen eines hintergrund-Bild für die Schaltfläche, aber sobald ich den Mauszeiger über der Schaltfläche, wird das Bild verschwindet. Um dieses Problem zu lösen, ich muss schreiben, Funktionen zu überschreiben, den button Verhalten, was ist zu viel zu tun im code-behind.

Ich dann eine alternative Methode verwenden, fügen Sie eine Schaltfläche und ein Bild einzeln, um zu einer grid-Zelle. Das Problem ist, wenn ich auf das Bild klicken, wird der button nicht ausgelöst.

Wie mache ich die Taste, um die hover und gedrückt Wirkung, auch wenn die Maus ist entweder schwebt oder Pressen das Bild auf dem button, aber nicht den restlichen Bereich des Buttons?

Oder hoffe, jemand kann mir empfehlen eine bessere Lösung.Unten ist mein code.

        InitializeComponent();
        Button playBtn = new Button();
        playBtn.Width = 60;
        playBtn.Height = 30;
        Image playIcon = new Image();
        playIcon.Source = new BitmapImage(new Uri(@"PATH"));
        playIcon.Stretch = Stretch.Uniform;
        playIcon.Height = 25;

        grid1.Children.Add(playBtn);
        grid1.Children.Add(playIcon);

        Grid.SetColumn(playBtn, 0);
        Grid.SetRow(playBtn, 0);
        Grid.SetColumn(playIcon, 0);
        Grid.SetColumn(playIcon, 0);

Dank für jeden input, nach dem Graben mehr hinein, es Art von Arbeit aus. Was ich getan habe ist, fügen Sie ein Grid zu - Taste.Inhalt dann füge das Bild in das Raster. Und mit Deckkraft hinzufügen, der Grau-out-Effekt für IsEnable falschen Staat. Unten poste ich mein code, hoffe, dass jemand es nützlich finden, oder verbessern Sie auf:

    Button playBtn = new Button();
    Image playIcon = new Image();

    public MainWindow()
    {
        InitializeComponent();

        Grid grid2 = new Grid();
        RowDefinition grid2_row1 = new RowDefinition();
        ColumnDefinition grid2_col1 = new ColumnDefinition();
        grid2.RowDefinitions.Add(grid2_row1);
        grid2.ColumnDefinitions.Add(grid2_col1);

        playBtn.Width = 60;
        playBtn.Height = 30;
        playBtn.Click += playBtn_Click;

        playIcon.Source = new BitmapImage(new Uri(@"pack://PATH..."));
        playIcon.Stretch = Stretch.Uniform;
        playIcon.Height = 25;

        playBtn.Content = grid2;
        grid2.Children.Add(playIcon);

        grid1.Children.Add(playBtn);

        Grid.SetRow(playIcon, 0);
        Grid.SetColumn(playIcon, 0);
    }

    public void playBtn_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("Hello");
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        playBtn.IsEnabled = false;
        playIcon.Opacity = 0.3;
    }

InformationsquelleAutor KMC | 2011-03-22

Schreibe einen Kommentar