UI With Page for Dynamic Button content

image_pdfimage_print


   
  



<Page    
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="QuickStart4.Page1">
  <StackPanel>
    <Button HorizontalAlignment="Left"
        Width="100"
        Margin="10,10,10,10"
        Click="HandleClick"
        Name="Button1">Click Me</Button>
  </StackPanel>
</Page>

//File:Page1.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;

namespace QuickStart4
{
    public partial class Page1 : Page
    {
        void HandleClick(object sender, RoutedEventArgs e)
        {
            Button1.Content = "Hello World";
        }
    }
}

   
    
     


A XAML browser application (XBAP) running in partial trust can safely upload files from a client machine.

image_pdfimage_print


   
  


<Page x:Class="SafeFileUploadPartialTrustSample.HomePage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="HomePage"
  xmlns:dialogs="clr-namespace:Microsoft.Win32;assembly=PresentationFramework">
    <StackPanel>
    <Button Name="uploadButton" Click="uploadButton_Click" Width="100">Upload Image...</Button>
    <Image Name="viewImage" Width="500" Height="300"></Image>
    <Label Name="nameLabel"></Label>
    
    </StackPanel>
</Page>
//File:Window.xaml.cs
using System;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using Microsoft.Win32;

namespace SafeFileUploadPartialTrustSample {
    public partial class HomePage : Page, IProvideCustomContentState {
        public HomePage() {
            InitializeComponent();
        }

        void uploadButton_Click(object sender, RoutedEventArgs e) {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*";

            if (dlg.ShowDialog() == true) {
                if (this.viewImage.Source != null) {
                    ImageCustomContentState iccs = new ImageCustomContentState(this.viewImage.Source, (string)this.nameLabel.Content);
                    this.NavigationService.AddBackEntry(iccs);
                }
                using (Stream stream = dlg.OpenFile()) {
                    BitmapDecoder bitmapDecoder = BitmapDecoder.Create(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
                    this.viewImage.Source = bitmapDecoder.Frames[0];
                    this.nameLabel.Content = dlg.SafeFileName;
                }
            }
        }
        public CustomContentState GetContentState() {
            return new ImageCustomContentState(this.viewImage.Source, (string)this.nameLabel.Content);
        }
    }
    [Serializable]
    public class ImageCustomContentState : CustomContentState
    {

        ImageSource imageSource;
        string filename;

        public ImageCustomContentState(ImageSource imageSource, string filename)
        {
            this.imageSource = imageSource;
            this.filename = filename;
        }

        public override string JournalEntryName
        {
            get { return this.filename; }
        }

        public override void Replay(NavigationService navigationService, NavigationMode mode)
        {
            HomePage homePage = (HomePage)navigationService.Content;
            homePage.viewImage.Source = this.imageSource;
            homePage.nameLabel.Content = this.filename;
        }
    }
}

   
    
     


Add a control to a Panel

image_pdfimage_print


   
  
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="ElemCollMethods.Pane1"
    WindowTitle="UI Element Collection Methods Sample">
 <StackPanel>
    <TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>

    <TabControl>
        <TabItem MouseLeftButtonUp="AddButton">
            <TabItem.Header>Add Control</TabItem.Header>
        </TabItem>
    </TabControl>
    <StackPanel Name="sp1"></StackPanel>

 </StackPanel>
</Page>

//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;

namespace ElemCollMethods
{

  public partial class Pane1 : Page
  {
    System.Windows.Controls.Button btn, btn1, btn2, btn3;

    void AddButton(object sender, MouseButtonEventArgs e)
    {
      sp1.Children.Clear();
      btn = new Button();
      btn.Content = "New Button";
      sp1.Children.Add(btn);
    }
  }
}

   
    
     


Remove Control from a Panel

image_pdfimage_print


   
  
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="ElemCollMethods.Pane1"
    WindowTitle="UI Element Collection Methods Sample">
 <StackPanel>
    <TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>

    <TabControl>
        <TabItem MouseLeftButtonUp="RemoveButton">
            <TabItem.Header>Remove Control</TabItem.Header>
        </TabItem>
    </TabControl>
    <StackPanel Name="sp1"></StackPanel>

 </StackPanel>
</Page>

//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;

namespace ElemCollMethods
{

  public partial class Pane1 : Page
  {
    System.Windows.Controls.Button btn, btn1, btn2, btn3;

    void RemoveButton(object sender, MouseButtonEventArgs e)
    {
            sp1.Children.Clear();
            btn = new Button();
      btn.Content = "Click to insert button";
            sp1.Children.Add(btn);
            btn.Click += (InsertControls);
      btn1 = new Button();
      btn1.Content = "Click to insert button";
            sp1.Children.Add(btn1);
            btn1.Click += (InsertControls);
            if ((sp1.Children.IndexOf(btn) >= 0) || (sp1.Children.IndexOf(btn1) >= 0) || (sp1.Children.IndexOf(btn2) >= 0) || (sp1.Children.IndexOf(btn3) >= 0))
            {
                sp1.Children.RemoveAt(0);
            }
    }
    void InsertControls(object sender, RoutedEventArgs e)
    {
      btn2 = new Button();
      btn2.Content = "Inserted Button";
            sp1.Children.Insert(1, btn2);
        }
  }
}

   
    
     


Insert Button to a Panel

image_pdfimage_print


   
  
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="ElemCollMethods.Pane1"
    WindowTitle="UI Element Collection Methods Sample">
 <StackPanel>
    <TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>

    <TabControl>
    
        <TabItem MouseLeftButtonUp="InsertButton">
            <TabItem.Header>Insert Control</TabItem.Header>
        </TabItem>
    </TabControl>
    <StackPanel Name="sp1"></StackPanel>

 </StackPanel>
</Page>


//File:Window.xaml.cs

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;

namespace ElemCollMethods
{

  public partial class Pane1 : Page
  {
    System.Windows.Controls.Button btn, btn1, btn2, btn3;

    void InsertButton(object sender, MouseButtonEventArgs e)
    {
            sp1.Children.Clear();
            btn = new Button();
      btn.Content = "Click to insert button";
            sp1.Children.Add(btn);
            btn.Click += (InsertControls);
      btn1 = new Button();
      btn1.Content = "Click to insert button";
            sp1.Children.Add(btn1);
            btn1.Click += (InsertControls);
    }
    void InsertControls(object sender, RoutedEventArgs e)
    {
      btn2 = new Button();
      btn2.Content = "Inserted Button";
            sp1.Children.Insert(1, btn2);
        }
  }
}

   
    
     


Add child control

image_pdfimage_print


   
  

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="ElemCollMethods.Pane1"
    WindowTitle="UI Element Collection Methods Sample">
 <StackPanel>
    <TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>

    <TabControl>
        <TabItem MouseLeftButtonUp="AddButton">
            <TabItem.Header>Add Control</TabItem.Header>
        </TabItem>
    </TabControl>
    <StackPanel Name="sp1"></StackPanel>

 </StackPanel>
</Page>
//File:Window.xaml.cs

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;

namespace ElemCollMethods
{

  public partial class Pane1 : Page
  {
    System.Windows.Controls.Button btn, btn1, btn2, btn3;

    void AddButton(object sender, MouseButtonEventArgs e)
    {
      sp1.Children.Clear();
      btn = new Button();
      btn.Content = "New Button";
      sp1.Children.Add(btn);
    }
  }
}

   
    
     


Show Index of Controls

image_pdfimage_print


   
  
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="ElemCollMethods.Pane1"
    WindowTitle="UI Element Collection Methods Sample">
 <StackPanel>
    <TextBlock Name="txt" FontSize="16">UI Element Collection - Methods</TextBlock>

    <TabControl>
        <TabItem MouseLeftButtonUp="ShowIndex">
            <TabItem.Header>Show Index of Controls</TabItem.Header>
        </TabItem>
    </TabControl>
    <StackPanel Name="sp1"></StackPanel>

 </StackPanel>
</Page>

//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Input;

namespace ElemCollMethods
{

  public partial class Pane1 : Page
  {
    System.Windows.Controls.Button btn, btn1, btn2, btn3;


    void ShowIndex(object sender, MouseButtonEventArgs e)
    {
            sp1.Children.Clear();
            btn = new Button();
      btn.Content = "Click for index";
      btn.Click += (PrintIndex);
            sp1.Children.Add(btn);

            btn1 = new Button();
      btn1.Content = "Click for index";
            sp1.Children.Add(btn1);
            btn1.Click += (PrintIndex1);

      btn2 = new Button();
      btn2.Content = "Click for index";
            sp1.Children.Add(btn2);
            btn2.Click += (PrintIndex2);

      btn3 = new Button();
      btn3.Content = "Click for index";
            sp1.Children.Add(btn3);
            btn3.Click += (PrintIndex3);

    }
    void PrintIndex(object sender, RoutedEventArgs e)
    {
            btn.Content = ((sp1.Children.IndexOf(btn)).ToString());
        }
    void PrintIndex1(object sender, RoutedEventArgs e)
    {
            btn1.Content = ((sp1.Children.IndexOf(btn1)).ToString());
        }
    void PrintIndex2(object sender, RoutedEventArgs e)
    {
            btn2.Content = ((sp1.Children.IndexOf(btn2)).ToString());
        }
    void PrintIndex3(object sender, RoutedEventArgs e)
    {
            btn3.Content = ((sp1.Children.IndexOf(btn3)).ToString());
        }
  }
}