ContentPresenter CreateChild(object item) { if (item == null) { return(null); } var content = FindChild(item); if (content != null) { return(content); } // the actual child to be added. cp.Tag is a reference to the TabItem content = new ContentPresenter { Content = (item is TabItem) ? (item as TabItem).Content : item }; content.Bind(ContentPresenter.ContentTemplateProperty, "SelectedContentTemplate", this, System.Windows.Data.BindingMode.OneWay); content.Bind(ContentPresenter.ContentTemplateSelectorProperty, "SelectedContentTemplateSelector", this, System.Windows.Data.BindingMode.OneWay); content.Bind(ContentPresenter.ContentStringFormatProperty, "SelectedContentStringFormat", this, System.Windows.Data.BindingMode.OneWay); content.Visibility = Visibility.Collapsed; content.Tag = (item is TabItem) ? item : (this.ItemContainerGenerator.ContainerFromItem(item)); PART_Items.Children.Add(content); return(content); }
public void Changing_Resource_In_Templated_Parent_Should_Affect_Templated_Child() { var target = new ContentControl { Resources = { { "red", Brushes.Red }, }, Template = new FuncControlTemplate <ContentControl>((x, scope) => { var result = new ContentPresenter { Name = "PART_ContentPresenter", [!ContentPresenter.ContentProperty] = x[!ContentControl.ContentProperty], }.RegisterInNameScope(scope); result.Bind(ContentPresenter.BackgroundProperty, result.GetResourceObservable("red")); return(result); }), }; var root = new TestRoot(target); target.ApplyTemplate(); var contentPresenter = Assert.IsType <ContentPresenter>(target.GetVisualChildren().Single()); Assert.Same(Brushes.Red, contentPresenter.Background); target.Resources["red"] = Brushes.Green; Assert.Same(Brushes.Green, contentPresenter.Background); }
private Control DefaultTemplate(Window c) { Border border = new Border(); border.Background = new Perspex.Media.SolidColorBrush(0xffffffff); ContentPresenter contentPresenter = new ContentPresenter(); contentPresenter.Bind( ContentPresenter.ContentProperty, this.GetObservable(Window.ContentProperty), BindingPriority.Style); border.Content = contentPresenter; return(border); }
void UpdateTemplate() { if (Node != null) { bindings.Add(expander.Bind(ToggleButton.IsVisibleProperty, new Binding("ShowExpander") { Source = Node })); bindings.Add(expander.Bind(ToggleButton.IsCheckedProperty, new Binding("IsExpanded") { Source = Node })); bindings.Add(icon.Bind(ContentPresenter.IsVisibleProperty, new Binding("ShowIcon") { Source = Node })); bindings.Add(checkBoxContainer.Bind(Border.IsVisibleProperty, new Binding("IsCheckable") { Source = Node })); bindings.Add(checkBox.Bind(CheckBox.IsCheckedProperty, new Binding("IsChecked") { Source = Node })); bindings.Add(textContainer.Bind(Border.IsVisibleProperty, new Binding("IsEditing") { Source = Node, Converter = BoolConverters.Inverse })); bindings.Add(textContent.Bind(ContentPresenter.ContentProperty, new Binding("Text") { Source = Node })); RaisePropertyChanged(IconProperty, null, Icon); } spacer.Width = CalculateIndent(); if (ParentTreeView.Root == Node && !ParentTreeView.ShowRootExpander) { expander.IsVisible = false; } else { expander.ClearValue(IsVisibleProperty); } }
protected override ColumnDefinition GetColumnDefinition(ContentPresenter Child, int Index) { var Result = base.GetColumnDefinition(Child, Index); var TreeViewItem = PART_TreeViewItem ?? this.GetParent <TreeViewItem>(); if (TreeViewItem == null) { throw new InvalidOperationException("TreeViewRowHeader must be hosted in a control that inherits TreeViewItem."); } var TreeView = PART_TreeView ?? TreeViewItem.GetParent <TreeView>(); try { if (TreeView is TreeViewExt && TreeView.As <TreeViewExt>().Columns.Count > 0 && Index < TreeView.As <TreeViewExt>().Columns.Count) { var Column = TreeView.As <TreeViewExt>().Columns[Index]; Result = new ColumnDefinition(); var NodeDepth = TreeViewItem.GetDepth(); var a = Index == 0 ? new TreeViewColumnGridLengthConverter(ColumnOffset) : null; var b = Index == 0 ? new TreeViewColumnDoubleConverter(ColumnOffset) : null; var c = Index == 0 ? new TreeViewColumnDoubleConverter(ColumnOffset) : null; var n = Index == 0 ? NodeDepth.ToDouble() as object : null; Result.Bind(ColumnDefinition.WidthProperty, Column, "Width", a, n, BindingMode.OneWay, UpdateSourceTrigger.PropertyChanged); Result.Bind(ColumnDefinition.MinWidthProperty, Column, "MinWidth", b, n, BindingMode.TwoWay, UpdateSourceTrigger.PropertyChanged); Result.Bind(ColumnDefinition.MaxWidthProperty, Column, "MaxWidth", c, n, BindingMode.TwoWay, UpdateSourceTrigger.PropertyChanged); Child.Bind(ContentPresenter.MarginProperty, Column, "ContentMargin"); } } catch { Result = null; } return(Result); }