Using LinearGradientBrush to draw a 3D button

image_pdfimage_print


   
    
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <Rectangle Width="80" Height="30">
        <Rectangle.Fill>
            <VisualBrush>
                <VisualBrush.Visual>
                    <Grid Width="80" Height="26">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="2*" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <Rectangle Grid.RowSpan="2" RadiusX="13" RadiusY="13">
                            <Rectangle.Fill>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Color="Red" Offset="0" />
                                    <GradientStop Color="DarkRed" Offset="1" />
                                </LinearGradientBrush>
                            </Rectangle.Fill>
         
                        </Rectangle>

                        <Rectangle Margin="3,2" RadiusX="8" RadiusY="12">
                            <Rectangle.Fill>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Color="#dfff" Offset="0" />
                                    <GradientStop Color="#0fff" Offset="1" />
                                </LinearGradientBrush>
                            </Rectangle.Fill>
                        </Rectangle>

                    </Grid>
                </VisualBrush.Visual>
            </VisualBrush>
        </Rectangle.Fill>
    </Rectangle>

</Page>

   
    
    
    
     


Set AccessText for Label

image_pdfimage_print


   
   

<StackPanel
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="LabelSimple.Pane1">

    <DockPanel Margin="30,10,3,3" Grid.Column="0" Grid.Row="4">
        <TextBox Name="textBox1" Width="50" Height="20"/>
        <Label Width="200" HorizontalAlignment="Left"
             Target="{Binding ElementName=textBox1}">
            <AccessText TextWrapping="WrapWithOverflow">
                _Another long piece of text that requires text wrapping
          goes here.
            </AccessText>
        </Label>
    </DockPanel>


</StackPanel>

   
    
    
     


Binding Label to TextBox

image_pdfimage_print


   
    

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Center" VerticalAlignment="Center">

    <StackPanel Orientation="Horizontal">
    
        <Label Target="{Binding ElementName=nameText}">_Name:</Label>
        <TextBox x:Name="nameText" Width="70" />
    
    </StackPanel>

</Page>

   
    
    
    
     


Embedded Font

image_pdfimage_print


   
     
<Window x:Class="ClassicControls.EmbeddedFont"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ClassicControls" Height="300" Width="300"
    >
    <Grid>
      <Label Name="tst" FontSize="20" FontFamily="./#Bayern"
             >This is an embedded font</Label>
    </Grid>
</Window>

   
    
    
    
    
     


Determine the layout position of an element using the LayoutInformation

image_pdfimage_print


   
  


<Window  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="layout_information.Window1"
    Title="LayoutInformation Sample">
    <Border Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top">
      <Grid Name="myGrid" Height="150">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="250"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
          <RowDefinition />
          <RowDefinition />
          <RowDefinition />
        </Grid.RowDefinitions>
        <TextBlock Name="txt1" Margin="5" Grid.Column="0" Grid.Row="0">Hello World!</TextBlock>
        <Button Click="ShowLayoutSlot" Width="125" Height="25" Grid.Column="0" Grid.Row="1">Show Bounding Box</Button>

      </Grid>
  </Border>  
</Window>

//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;

namespace layout_information
{
  public partial class Window1 : Window
  {
        public void ShowLayoutSlot(object sender, System.Windows.RoutedEventArgs e)
        {
            RectangleGeometry myRectangleGeometry = new RectangleGeometry();
            myRectangleGeometry.Rect = LayoutInformation.GetLayoutSlot(txt1);
            
            GeometryDrawing myGeometryDrawing = new GeometryDrawing();
            Path myPath = new Path();
            myPath.Data = myRectangleGeometry;

            myPath.Stroke = Brushes.LightGoldenrodYellow;
            myPath.StrokeThickness = 1;
            Grid.SetColumn(myPath, 0);
            Grid.SetRow(myPath, 0);
            myGrid.Children.Add(myPath);
            
            Console.WriteLine(LayoutInformation.GetLayoutSlot(txt1).ToString());
        }
  }
}