//----------------------------------------------------------- // TestDeviceIndependentUnits.cs (c) 2006 by Charles Petzold //----------------------------------------------------------- using System; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Input; using System.Windows.Media; namespace Petzold.TestDeviceIndependentUnits { public class TestDeviceIndependentUnits : Window { [STAThread] public static void Main() { Application app = new Application(); app.Run(new TestDeviceIndependentUnits()); } public TestDeviceIndependentUnits() { Title = "Test Device-Independent Units"; Width = 300; Height = 300; UniformGrid unigrid = new UniformGrid(); unigrid.Rows = 3; unigrid.Columns = 1; Content = unigrid; // TextBlock elements display ActualWidth x ActualHeight. StackPanel stack = new StackPanel(); stack.Orientation = Orientation.Horizontal; stack.HorizontalAlignment = HorizontalAlignment.Center; stack.VerticalAlignment = VerticalAlignment.Center; stack.DataContext = this; unigrid.Children.Add(stack); TextBlock txtblk = new TextBlock(); txtblk.SetBinding(TextBlock.TextProperty, "ActualWidth"); stack.Children.Add(txtblk); txtblk = new TextBlock(); txtblk.Text = " \x00D7 "; stack.Children.Add(txtblk); txtblk = new TextBlock(); txtblk.SetBinding(TextBlock.TextProperty, "ActualHeight"); stack.Children.Add(txtblk); // Button increases Width by 1 unit. Button btn = new Button(); btn.Content = "Width = ActualWidth + 1"; btn.HorizontalAlignment = HorizontalAlignment.Center; btn.VerticalAlignment = VerticalAlignment.Center; btn.Click += delegate { Width = ActualWidth + 1; }; unigrid.Children.Add(btn); // Button increase Height by 1 unit. btn = new Button(); btn.Content = "Height = ActualHeight + 1"; btn.HorizontalAlignment = HorizontalAlignment.Center; btn.VerticalAlignment = VerticalAlignment.Center; btn.Click += delegate { Height = ActualHeight + 1; }; unigrid.Children.Add(btn); } } }