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); } }
- 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