Diskuze: WPF - problém se stylizací

C# .NET .NET (C# a Visual Basic) WPF - problém se stylizací American English version English version

Avatar
Jakub Lásko[Saarix]:

Zdravím,
dělám teď na aplikaci we WPF a zabývám se stylizací komponent, ale mám menší problém.
Používám k tomu Resource Dictionary, kde mám nadefinované všechny styly, ale teď když jsem styloval poslední komponenty, kde jsem použil brushe, atd... jako static resource, tak mi to hází error.

<LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#CCC" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="HorizontalNormalBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#CCC" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="HorizontalLightBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#AAA" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#BBB" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="0.1"/>
                <GradientStop Color="#EEE" Offset="0.9"/>
                <GradientStop Color="#FFF" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />

    <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />

    <SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />

    <SolidColorBrush x:Key="SelectedBackgroundBrush" Color="#DDD" />

    <SolidColorBrush x:Key="DrepixGrey" Color="#888" />

    <!-- Border Brushes -->

    <SolidColorBrush x:Key="NormalBorderBrush" Color="#FF938C8C" />

    <LinearGradientBrush x:Key="HorizontalNormalBorderBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#CCC" Offset="0.0"/>
                <GradientStop Color="#444" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="DefaultedBorderBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#777" Offset="0.0"/>
                <GradientStop Color="#000" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="PressedBorderBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#444" Offset="0.0"/>
                <GradientStop Color="#888" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />

    <SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />

    <SolidColorBrush x:Key="LightBorderBrush" Color="#AAA" />

    <!-- Miscellaneous Brushes -->
    <!-- Color of the arrow -->
    <SolidColorBrush x:Key="GlyphBrush" Color="White" />

    <SolidColorBrush x:Key="LightColorBrush" Color="#DDD" />

    <SolidColorBrush x:Key="TransparentBrush" Color="White" Opacity="0" />

Tady jsou všechny mé brushe, na které se pak v resource dictionary odkazuji pomocí static resource. Ale jakmile se načítá okno s danou komponentou vyhodí to error, že to dané brushe pomocí static resources nemůže najít.
Nejsem si jistý jestli nedělám chybu a ty brushe nemají být definovány jinde, proto bych potřeboval poradit.
Díky :-)

Odpovědět 30.6.2015 8:07
Časem je vše možné.
Avatar
Odpovídá na Jakub Lásko[Saarix]
sadlomaslox25:

a kde je umisteny ten resource dictionary? nejlepsi misto kam to umistit je do souboru app.xaml ktery je pak dostupny v ramci cele aplikace.

 
Nahoru Odpovědět 30.6.2015 20:56
Avatar
Odpovídá na sadlomaslox25
Jakub Lásko[Saarix]:

Ano mám ho definovaný v app.xaml, aby byl sdílený celému projektu a aplikoval se na všech oknech. :-)

Nahoru Odpovědět 1.7.2015 7:14
Časem je vše možné.
Avatar
Jakub Lásko[Saarix]:

Btw. vyřešeno stačilo napsat definici brushů před definici stylů, které je využívají :-) so simple

Akceptované řešení
+5 Zkušeností
Řešení problému
Nahoru Odpovědět 7.7.2015 9:04
Časem je vše možné.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.