Autor Beitrag
nepo
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 26.06.11 17:33 
Hallo,

ich bin noch ziemlich neu in Sachen C# und wollte mich als erstes mit dem Design bei WPF/XAML beschäftigen.
Nun zu meinem Problem:

Ich hab mir ein Menü oben angelegt und habe ihm einen Hintergrund als Bild gegeben. Wenn ich nicht mit der Maus drüber bin haben die einzelnen Punkte auch keinen Rahmen. Wenn ich nun aber mit der Maus auf einen Menüpunkt fahre dann habe ich immer einen Rahmen und egal was ich mache er ist immer da.
Meine Frage ist nun was ich machen kann damit es keinen Rahmen mehr gibt bzw. dieser eine andere Farbe hat.

Zur Veranschaulichung habe ich mal ein paar Bilder erstellt:
Maus nicht über Menüpunkt:
[url=www.directupload.net]user defined image[/URL]
Maus ist über Menüpunkt:
[url=www.directupload.net]user defined image[/URL]

Hier der XAML-Code:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<Grid>
        <Menu Height="23" HorizontalAlignment="Stretch" Name="menu1" VerticalAlignment="Top" >
            <Menu.Background>
                <ImageBrush ImageSource="/WpfApplication1;component/Images/Menubackground.png" />
            </Menu.Background>
            <MenuItem Header="Test 1" 
                      MouseEnter="MenuItem_MouseEnter"
                      MouseLeave="MenuItem_MouseLeave"
                      Click="MenuItem_Click" 
                      BorderThickness="0"
                      DataContext="{Binding}" 
                      Name="cmdMenuItem1" > 
                <MenuItem Header="Test 3" />
            </MenuItem>
        </Menu>
    </Grid>


Ich hoffe ihr könnt mir helfen!


Zuletzt bearbeitet von nepo am Mo 27.06.11 10:16, insgesamt 1-mal bearbeitet
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 26.06.11 20:30 
:welcome: in der EE!

Dafür musst du wahrscheinlich das ControlTemplate bearbeiten, was am besten mit Blend funktioniert. So oder so aber beileibe kein Anfänger-Thema, ich würde es mir für später aufsparen ;) .

PS: Suche im MSDN LINEARGRADIENTBRUSH

_________________
>λ=
nepo Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 26.06.11 21:17 
Danke erstmal für die Antwort.

Mit dem was ich mir jetzt über deinen Link durchgelesen habe kann man ja ein ganzen Buch füllen.
Gibt es tatsächlich keine simplere Variante eine farbige Border bzw. transparente Border zu erstellen?

Ich hatte es schon im MouseEnter-Event versucht aber da bleibt ja gleich ganz ohne Wirkung.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
 private void MenuItem_MouseEnter(object sender, MouseEventArgs e)
        {
            cmdMenuItem1.Background = Brushes.Yellow;
            cmdMenuItem1.BorderBrush = Brushes.Orange;       // <-- Keine veränderung
            cmdMenuItem1.BorderThickness = new Thickness(3); // <-- Ebenfalls keine Veränderung
        }
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 26.06.11 21:25 
Das PS war nicht auf den Rahmen, sondern deinen ImageBrush bezogen :) . Und ja, schon mit einzelnen Themen von WPF kann man Bücher füllen.

_________________
>λ=
nepo Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 27.06.11 00:42 
Hab mir Blend 4 grad mal angeschaut. Gibt es dafür auch eine Alternative die nicht gleich 700€ kostet?