We will use resource in WPF with VB.NET. We can
define the styles in WPF XAML files, or perhaps we can manage to accumulate all
our useful styles for a particular application in a resource dictionary file.
The Resources store reference to an object within a collection. We will use
StaticResource in the button. We will use 'Resource Dictionary' throw the
StaticResource in the application.
The Application object, Window, Button, and
other WPF controls all have a Resources collection. A resource can be anything,
such as a Brush to use for painting the background, a control template or many
other types of objects.
Two types of resources.
- Static Resources
- Dynamic Resources
Example:-
This coding of Window1.xaml:-
<Window
x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
Height="300"
Width="300">
<Grid>
<Button
Style="{StaticResource
RedButton}"
Content="Demo"
Margin="52,21,127,0"
Grid.Row="1"
Height="22"
VerticalAlignment="Top"
/>
<Rectangle
Margin="52,28,127,17"
Name="Rectangle1"
Stroke="Black"
Fill="{StaticResource
MyBrush}"/>
</Grid>
</Window>
This coding of Dictionary1.xaml:- We
will add a resource dictionary in our application. We have to select the project
or folder in Solution Explorer and then right click and select "Add". We will
get a menu item called "Resource Dictionary". Clicking on that menu item will
popup up the Add New Item wizard with the Resource Dictionary Item template
selected. Rename the item as you wish.
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<LinearGradientBrush
x:Key="MyBrush">
<GradientStop
Color="Blue"
Offset="0"/>
<GradientStop
Color="Yellow"
Offset="1"/>
</LinearGradientBrush>
<Style
x:Key="RedButton"
TargetType="{x:Type
Button}">
<Setter
Property="Background"
Value="Red"/>
<Setter
Property="Foreground"
Value="Yellow"/>
<Setter
Property="Margin"
Value="12,3"/>
<Setter
Property="Padding"
Value="3"/>
<Setter
Property="MinWidth"
Value="75"/>
<Setter
Property="MinHeight"
Value="34"/>
</Style>
</ResourceDictionary>
This coding of Application.xaml:-
<Application
x:Class="Application"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>
<ResourceDictionary
Source="\\MCNSERVER2\UserProfiles\smalik\My
Documents\Visual
Studio 2008\Projects\Resources\Resources\Dictionary1.xaml"/>
</Application.Resources>
</Application>
Output:-
