Monday, September 17, 2012

How to set custom-column-property in xaml file?

How to set custom-column-property in xaml file?

GridSplitterControl.xaml

<sdk:GridSplitter x:Class="JustLogIt.Common.GridSplitterControl"                   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"                   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"                   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"                   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"                   xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"                   xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"                   mc:Ignorable="d">     <sdk:GridSplitter.Template>         <ControlTemplate TargetType="sdk:GridSplitter">             <Grid>                 <Grid.RowDefinitions>                     <RowDefinition Height="auto" />                     <RowDefinition Height="*" />                 </Grid.RowDefinitions>                 <Grid.ColumnDefinitions>                     <ColumnDefinition Width="auto" />                 </Grid.ColumnDefinitions>                 <telerik:RadButton Grid.Row="0"                                    Width="10"                                    Height="20"                                    HorizontalAlignment="Center"                                    Click="Click"                                    Cursor="Hand" />                 <Border Grid.Row="1"                         BorderBrush="LightGray"                         BorderThickness="5" />             </Grid>         </ControlTemplate>     </sdk:GridSplitter.Template> </sdk:GridSplitter> 

GridSplitterControl.xaml.cs

    public partial class GridSplitterControl : GridSplitter     {         GridLength AutoSize = new GridLength(1.0, GridUnitType.Auto);         GridLength ZeroSize = new GridLength(0.0);         public ColumnDefinition Left{ set; get;}         public GridSplitterControl()         {             InitializeComponent();          }         public GridSplitterControl(ColumnDefinition ColLeft)         {             InitializeComponent();             Left = ColLeft;         }         public void Click(object sender, RoutedEventArgs e)         {             if (Left != null)             {                 Left.MinWidth = 10.0;                 if ((Left.Width.Value + 10) == Left.MinWidth)                     Left.Width = AutoSize;                 else if (Left.Width.Value != AutoSize.Value)                     Left.Width = AutoSize;                 else Left.Width = ZeroSize;             }             //ClickNotify(sender, e);         }          public event EventHandler ClickCompleted;         private void ClickNotify(object senderAIF, RoutedEventArgs eAIF)         {             if (ClickCompleted != null)                 ClickCompleted(senderAIF, eAIF);         }     } 
  1. The Click event can work, but I have no idea to set the Left(ColumnDefinition) in xaml file which used this Element.
    <Grid x:Name="LayoutRoot1"                   Grid.Row="1"                   Margin="5"                   Background="White">          <Grid.ColumnDefinitions>               <ColumnDefinition x:Name="LvCol_10" Width="*" />               <ColumnDefinition x:Name="LvCol_11" Width="*" />          </Grid.ColumnDefinitions>          <Mylayout:GridSplitterControl x:Name="GridSplitter_Left"                                        Grid.RowSpan="7"                                        Grid.Column="0"                                        Width="10"                                        VerticalAlignment="Stretch"                                        IsEnabled="True"                                        Left=? /> < !-- How to set "LvCol_11" in here? -->     </Grid>` 

Answers & Comments...




No comments:

Post a Comment

Send us your comment related to the topic mentioned on the blog