Programmatically Extract an Element's Style with DefaultStyleKeyProperty : Key Event « Windows Presentation Foundation « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Design Patterns
8.Development Class
9.Event
10.File Stream
11.Generics
12.GUI Windows Form
13.Language Basics
14.LINQ
15.Network
16.Office
17.Reflection
18.Regular Expressions
19.Security
20.Services Event
21.Thread
22.Web Services
23.Windows
24.Windows Presentation Foundation
25.XML
26.XML LINQ
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source
C# / C Sharp » Windows Presentation Foundation » Key EventScreenshots 
Programmatically Extract an Element's Style with DefaultStyleKeyProperty
Programmatically Extract an Element's Style with DefaultStyleKeyProperty
  

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="120" Width="220">
    <Window.Resources>
        <Style x:Key="CustomProgressBarStyle" TargetType="{x:Type ProgressBar}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ProgressBar}">
                        <Grid>
                            <Border Name="PART_Track" Background="{DynamicResource {x:Static SystemColors.InactiveCaptionBrushKey}}"                          
                            BorderBrush="{DynamicResource {x:Static SystemColors.InactiveBorderBrushKey}}"                          
                            BorderThickness="1" />
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

    </Window.Resources>

    <StackPanel>
        <ProgressBar x:Name="MyProgressBar" Value="30" Width="200" HorizontalAlignment="Center" Style="{DynamicResource CustomProgressBarStyle}"/>
        <Button Click="Button_Click" Content="Extract Style"/>
    </StackPanel>

</Window>

//File:Window.xaml.cs

using System;
using System.Reflection;
using System.Windows;
using System.Windows.Markup;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Type type = typeof(FrameworkElement);
            FieldInfo fieldInfo = type.GetField("DefaultStyleKeyProperty",BindingFlags.Static| BindingFlags.NonPublic);

            DependencyProperty defaultStyleKeyProperty =(DependencyProperty)fieldInfo.GetValue(MyProgressBar);

            object defaultStyleKey = MyProgressBar.GetValue(defaultStyleKeyProperty);
            Style style = (Style)Application.Current.FindResource(defaultStyleKey);
            string styleXaml = XamlWriter.Save(style);
            Console.WriteLine(styleXaml);
        }
    }
}

   
    
  
Related examples in the same category
1.Query Left / Right control keyQuery Left / Right control key
2.Query Left / Right Shift keyQuery Left / Right Shift key
3.Is Key.CapsLock ToggledIs Key.CapsLock Toggled
4.Keyboard.IsKeyToggledKeyboard.IsKeyToggled
5.Query Number lock keyQuery Number lock key
6.Use Keyboard.Focus to set the focus to a Text FieldUse Keyboard.Focus to set the focus to a Text Field
7.Provide Quick Keyboard Access to ButtonsProvide Quick Keyboard Access to Buttons
8.Reading keyboard modifiersReading keyboard modifiers
9.Reading individual key state with Keyboard.IsKeyDownReading individual key state with Keyboard.IsKeyDown
10.Suppress Keyboard and Mouse EventsSuppress Keyboard and Mouse Events
11.Use KeyBinding to bind Key event to TextBox.InputBindingsUse KeyBinding to bind Key event to TextBox.InputBindings
12.StackPanel PreviewTextInput and PreviewKeyDownStackPanel PreviewTextInput and PreviewKeyDown
13.If input is not a number do not handle the key eventIf input is not a number do not handle the key event
14.On Key Down HandlerOn Key Down Handler
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.