Dela via


Så här använder du programresurser (WPF .NET)

Det här exemplet visar hur du använder programdefinierade resurser. Resurser kan definieras på programnivå, vanligtvis via App.xaml- eller Application.xaml fil, beroende på vilket projekt som används. Resurser som definieras av programmet är globalt begränsade och tillgängliga för alla delar av programmet.

Exempel

I följande exempel visas en programdefinitionsfil. Programdefinitionsfilen definierar ett resursavsnitt (ett värde för egenskapen Resources). Resurser som definierats på programnivå kan nås av alla andra sidor som ingår i programmet. I det här fallet är resursen ett deklarerat format. Eftersom ett fullständigt format som innehåller en kontrollmall kan vara långt utelämnar det här exemplet den kontrollmall som definieras i ContentTemplate egenskapsuppsättning för formatet.

<Application.Resources>
    <Style TargetType="Border" x:Key="FancyBorder">
        <Setter Property="Background" Value="#4E1A3D" />
        <Setter Property="BorderThickness" Value="5" />
        <Setter Property="BorderBrush">
            <Setter.Value>
                <LinearGradientBrush>
                    <GradientStop Offset="0.0" Color="#4E1A3D"/>
                    <GradientStop Offset="1.0" Color="Salmon"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

I följande exempel visas en XAML-sida som refererar till en resurs på programnivå från föregående exempel. Resursen refereras till med ett StaticResource Markup Extension som anger resursens unika resursnyckel. Resursen "FancyBorder" finns inte i omfånget för det aktuella objektet och fönstret, så resurssökningen fortsätter bortom den aktuella sidan och i resurser på programnivå.

<Border Style="{StaticResource FancyBorder}">
    <StackPanel Margin="5">
        <Button>Button 1</Button>
        <Button>Button 2</Button>
        <Button>Button 3</Button>
        <Button>Button 4</Button>
    </StackPanel>
</Border>

Se även