ControlTemplates and style xaml file : ControlTemplate « Windows Presentation Foundation « C# / CSharp Tutorial






<Window x:Class="ControlTemplates.GradientButtonTest"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="GradientButtonTest" Height="280" Width="322"
    >
  <Window.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="a.xaml"></ResourceDictionary>
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Window.Resources>
  <StackPanel>
    <Button Margin="10" Padding="5" Click="Clicked" Name="cmdOne">A Simple Button with a Custom Template</Button>
    <Button Margin="10" Padding="5" IsEnabled="False" Click="Clicked" Name="cmdFour" >A Disabled Button</Button>
    <CheckBox Margin="10" Checked="chkGreen_Checked" Unchecked="chkGreen_Unchecked">Use Alternate Theme</CheckBox>
  </StackPanel>
</Window>
//File:Window.xaml.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace ControlTemplates
{

    public partial class GradientButtonTest : System.Windows.Window
    {

        public GradientButtonTest()
        {
            InitializeComponent();
        }

        private void Clicked(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("You clicked " + ((Button)sender).Name);
        }

        private void chkGreen_Checked(object sender, RoutedEventArgs e)
        {
            ResourceDictionary resourceDictionary = new ResourceDictionary();
            resourceDictionary.Source = new Uri("a.xaml", UriKind.Relative);
            this.Resources.MergedDictionaries[0] = resourceDictionary;                
        }

        private void chkGreen_Unchecked(object sender, RoutedEventArgs e)
        {
            ResourceDictionary resourceDictionary = new ResourceDictionary();
            resourceDictionary.Source = new Uri("b.xaml", UriKind.Relative);
            this.Resources.MergedDictionaries[0] = resourceDictionary;                
        }
    }
}
WPF Control Templates And Style Xaml File








24.76.ControlTemplate
24.76.1.Control template: event trigger, border and textControl template: event trigger, border and text
24.76.2.Put a Control Template into a StylePut a Control Template into a Style
24.76.3.Label with ControlTemplateLabel with ControlTemplate
24.76.4.Specify Named Parts of a Control TemplateSpecify Named Parts of a Control Template
24.76.5.ProgressBar with ControlTemplateProgressBar with ControlTemplate
24.76.6.Simple ControlTemplateSimple ControlTemplate
24.76.7.ControlTemplate with TriggersControlTemplate with Triggers
24.76.8.ControlTemplate that Respects ContentControlTemplate that Respects Content
24.76.9.ControlTemplate that Respects More PropertiesControlTemplate that Respects More Properties
24.76.10.Use ControlTemplate and event handlerUse ControlTemplate and event handler
24.76.11.Finding the border that is generated by the ControlTemplate of the ButtonFinding the border that is generated by the ControlTemplate of the Button
24.76.12.Get The actual width of the border in the ControlTemplateGet The actual width of the border in the ControlTemplate
24.76.13.ControlTemplates and style xaml fileControlTemplates and style xaml file
24.76.14.Enhance the visual appearance of a ContentControl by applying a style.Enhance the visual appearance of a ContentControl by applying a style.
24.76.15.Use a ContentTemplate and determine whether the control contains content.Use a ContentTemplate and determine whether the control contains content.