Resources and Styles in WPF
Windows resources allow us to reuse defined values and objects. We can set the properties of multiple control at a time.
Here’s a list of place where your resources can be declared:
     - As global application scope within the application App.xaml file.
 
 
- As Window level scope within the Resources property of the current window.
 
 
- Within the Resources property of any FrameworkElement or  FrameworkContentElement. (eg Grid, StackPanel).
 
 
- Separate XAML resource file.
Lets see a very simple example of reusable string resource placing as Window Level Scope:
     - Use the following namespace.
 
     
     
         - xmlns:sys="clr-namespace:System;assembly=mscorlib"  
 
 
- Declare the resource in Windows.Resources.
 
     
     
         - <sys:String x:Key="strTitle">Pi-Techniques</sys:String>  
 
 
- Now we can use above resource for binding data to controls.
 
     
     
         - <TextBlock Text="{StaticResource strTitle}"/>  
 
 
Code:
     - <Window x:Class="WpfApplication.MainWindow"  
-         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
-         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
-         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
-         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
-         xmlns:local="clr-namespace:WpfApplication"  
-         xmlns:sys="clr-namespace:System;assembly=mscorlib"  
-         mc:Ignorable="d"  
-         Title="MainWindow" Height="350" Width="525">  
-     <Window.Resources>  
-         <sys:String x:Key="strTitle">Pi-Techniques</sys:String>  
-     </Window.Resources>  
-     <StackPanel>  
-         <TextBlock Text="{StaticResource strTitle}" FontSize="56" />  
-         <TextBlock>Welcome in "<TextBlock Text="{StaticResource strTitle}" />"!</TextBlock>  
-     </StackPanel>  
- </Window>  
 
![Run Program]() Example of reusable style
Example of reusable style
Styles in WPF are same as CSS in html.
     - Declare new style in Windows Resources,
 
     
     
         - <Window.Resources>  
-         <sys:String x:Key="strTitle">Pi-Techniques</sys:String>  
-         <Style  TargetType="TextBlock">  
-             <Setter Property="Foreground" Value="DarkRed"/>  
-             <Setter Property="HorizontalAlignment" Value="Center"/>  
-         </Style>  
-     </Window.Resources> 
 
 
 
 This style will automatically set for all TextBlocks in current page
 
 ![output]() 
 
 
- We Can also Make object for specific Textblock
 
     
     
         - <Window.Resources>  
-        <sys:String x:Key="strTitle">Pi-Techniques</sys:String>  
-        <Style  TargetType="TextBlock">  
-            <Setter Property="Foreground" Value="DarkRed"/>  
-            <Setter Property="HorizontalAlignment" Value="Center"/>  
-        </Style>  
-   
-        <Style x:Key="Headings" TargetType="TextBlock">  
-            <Setter Property="FontSize" Value="30"/>  
-            <Setter Property="Foreground" Value="Blue"/>  
-            <Setter Property="HorizontalAlignment" Value="Center"/>  
-        </Style>  
-    </Window.Resources>  
-    <StackPanel>  
-        <TextBlock Text="{StaticResource strTitle}"  Style="{StaticResource Headings}"/>  
-        <TextBlock>Welcome in "<TextBlock Text="{StaticResource strTitle}" />"!</TextBlock>  
-    </StackPanel>  
 
 ![run]()