Binding ColumDefinition Width XAML

I am creating a Windows 8.1 app using in the Windows 10 with help of Visual Studio 2015.

I have added grid to the design with 1 row and two column. In the first page there is big image and no text and in other pages there is icon and text. So I am putting if 4* in first column for first page and 2* in first for second page all works good but I wanted to make it dynamic in ContentPresenter and then I can assign it from C#.

Kindly somebody help me.

I tried in different way like I put below code in SlideApplicationFrame.cs

#region FirstColumnWidth (DependencyProperty)

	/// <summary>
	/// header Image First Column Width
	/// </summary>
	public GridLength FirstColumnWidth
		get { return (GridLength)GetValue(FirstColumnWidthProperty); }
		set { SetValue(FirstColumnWidthProperty, value); }
	public static readonly DependencyProperty FirstColumnWidthProperty =
			DependencyProperty.Register("FirstColumnWidth", typeof(GridLength), typeof(SlideApplicationFrame),
				new PropertyMetadata(new GridLength(4, GridUnitType.Star))); 


	#region ContentFirstColumnWidth (Attached DependencyProperty)

	public static readonly DependencyProperty ContentFirstColumnWidth =
			DependencyProperty.RegisterAttached("ContentFirstColumnWidth", typeof(GridLength), typeof(SlideApplicationFrame), new PropertyMetadata(new GridLength(4, GridUnitType.Star)));

	public static void SetContentFirstColumnWidth(DependencyObject o, GridLength value)
		o.SetValue(ContentFirstColumnWidth, value);

	public static GridLength GetContentFirstColumnWidth(DependencyObject o)
		return (GridLength)o.GetValue(ContentFirstColumnWidth);


Then I use it in my ContentPresenter Like this

<ContentPresenter  library:SlideApplicationFrame.ContentFirstColumnWidth="{TemplateBinding FirstColumnWidth}" Grid.Column="1"/>

and at the end in style setter

<ColumnDefinition Width="{Binding library:SlideApplicationFrame.ContentFirstColumnWidth}"/>

Whole Style Setter is as below

<Setter Property="HeaderTemplate">
					<Grid  x:Name="GridHeader">
							<ColumnDefinition Width="{Binding library:SlideApplicationFrame.ContentFirstColumnWidth}"/>
							<ColumnDefinition Width="5*"/>

and setting from MainPage.xaml.cs

SlideApplicationFrame RootFrame = Window.Current.Content as SlideApplicationFrame;
RootFrame.FirstColumnWidth = new GridLength(4, GridUnitType.Star);

Please help me I will be highly appreciated

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.