XAML - Barva pozadí MenuItem   otázka

VB.NET, WPF

Už nějakou dobu se marně snažím přijít na to, jak změnit barvu pozadí prvku obklopujícího MenuItem. Pokud změním pozadí MenuItem, nastaví se pozadí přímo položkám pod textem a kontejner držící všechny tyto položky menu zůstává v původní šedé barvě, a nevypadá to příliš vábně. Na internetu jsem našel nějaké rady ohledně přepsání template prvku MenuItem. Opravdu není jednodušší řešení než celý prvek "překopat"?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Není důvod překopávat celý MenuItem,stačí si upravit default styl v rámci XAMLu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Je potřeba do šablony nahlédnout. Zrovna v tomto případě můžete využít šablonu defaultní, protože využívá brush pro podbarvení z resources pod názvem SystemColors.HighlightBrushKey.

Přepsání této hodnoty lze udělat globálně nebo v rámci konkrétnich objektů. Například:

        <ListBox>
            <ListBox.Resources>
                <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Green"/>
            </ListBox.Resources>
            <ListBox.Items>
                <Label Content="A" />
                <Label Content="B" />
                <Label Content="C" />
            </ListBox.Items>
        </ListBox>
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nakonec se mi podařilo podle tohoto návodu http://blogs.microsoft.co.il/blogs/pavel... alespoň částečně obarvit položky menu. Problém se šedým ohraničením trvá. Asi jako na prvním obrázku. A to i když postupuji přesně podle návodu, rámeček se nepodaří zcela odstranit nebo přebarvit.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback