Browse Source

Binding ContentPresenter's DataContext.

To the owner control's Content property. In WPF this is done
automatically, but from looking on the internet it seems that causes
some confusion so do it explicitly.

Fixes #499 .
pull/504/head
Steven Kirk 11 years ago
parent
commit
4241fd8331
  1. 1
      src/Perspex.Themes.Default/Button.xaml
  2. 1
      src/Perspex.Themes.Default/CheckBox.xaml
  3. 3
      src/Perspex.Themes.Default/ContentControl.xaml
  4. 1
      src/Perspex.Themes.Default/DropDown.xaml
  5. 1
      src/Perspex.Themes.Default/DropDownItem.xaml
  6. 4
      src/Perspex.Themes.Default/Expander.xaml
  7. 1
      src/Perspex.Themes.Default/LayoutTransformControl.xaml
  8. 1
      src/Perspex.Themes.Default/ListBoxItem.xaml
  9. 3
      src/Perspex.Themes.Default/MenuItem.xaml
  10. 1
      src/Perspex.Themes.Default/RadioButton.xaml
  11. 1
      src/Perspex.Themes.Default/TabStripItem.xaml
  12. 1
      src/Perspex.Themes.Default/ToggleButton.xaml
  13. 1
      src/Perspex.Themes.Default/ToolTip.xaml
  14. 1
      src/Perspex.Themes.Default/TreeViewItem.xaml
  15. 5
      src/Perspex.Themes.Default/Window.xaml

1
src/Perspex.Themes.Default/Button.xaml

@ -14,6 +14,7 @@
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}" Padding="{TemplateBinding Padding}"
TextBlock.Foreground="{TemplateBinding Foreground}" TextBlock.Foreground="{TemplateBinding Foreground}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"

1
src/Perspex.Themes.Default/CheckBox.xaml

@ -22,6 +22,7 @@
</Border> </Border>
<ContentPresenter Name="PART_ContentPresenter" <ContentPresenter Name="PART_ContentPresenter"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Margin="4,0,0,0" Margin="4,0,0,0"
VerticalAlignment="Center" VerticalAlignment="Center"
Grid.Column="1"/> Grid.Column="1"/>

3
src/Perspex.Themes.Default/ContentControl.xaml

@ -5,7 +5,8 @@
Background="{TemplateBinding Background}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"/> Padding="{TemplateBinding Padding}"/>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>

1
src/Perspex.Themes.Default/DropDown.xaml

@ -11,6 +11,7 @@
BorderThickness="{TemplateBinding BorderThickness}"> BorderThickness="{TemplateBinding BorderThickness}">
<Grid ColumnDefinitions="*,Auto"> <Grid ColumnDefinitions="*,Auto">
<ContentPresenter Content="{TemplateBinding SelectionBoxItem}" <ContentPresenter Content="{TemplateBinding SelectionBoxItem}"
DataContext="{TemplateBinding Content}"
Margin="{TemplateBinding Padding}" Margin="{TemplateBinding Padding}"
HorizontalAlignment="Center" HorizontalAlignment="Center"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>

1
src/Perspex.Themes.Default/DropDownItem.xaml

@ -10,6 +10,7 @@
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Padding="{TemplateBinding Padding}"/> Padding="{TemplateBinding Padding}"/>

4
src/Perspex.Themes.Default/Expander.xaml

@ -17,6 +17,7 @@
Grid.Row="1" Grid.Row="1"
IsVisible="{TemplateBinding IsExpanded}" IsVisible="{TemplateBinding IsExpanded}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" /> VerticalAlignment="Stretch" />
</Grid> </Grid>
@ -34,6 +35,7 @@
Grid.Row="0" Grid.Row="0"
IsVisible="{TemplateBinding IsExpanded}" IsVisible="{TemplateBinding IsExpanded}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" /> VerticalAlignment="Stretch" />
</Grid> </Grid>
@ -51,6 +53,7 @@
Grid.Column="1" Grid.Column="1"
IsVisible="{TemplateBinding IsExpanded}" IsVisible="{TemplateBinding IsExpanded}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" /> VerticalAlignment="Stretch" />
</Grid> </Grid>
@ -68,6 +71,7 @@
Grid.Column="0" Grid.Column="0"
IsVisible="{TemplateBinding IsExpanded}" IsVisible="{TemplateBinding IsExpanded}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" /> VerticalAlignment="Stretch" />
</Grid> </Grid>

1
src/Perspex.Themes.Default/LayoutTransformControl.xaml

@ -6,6 +6,7 @@
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"/> Padding="{TemplateBinding Padding}"/>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>

1
src/Perspex.Themes.Default/ListBoxItem.xaml

@ -7,6 +7,7 @@
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"/> Padding="{TemplateBinding Padding}"/>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>

3
src/Perspex.Themes.Default/MenuItem.xaml

@ -13,6 +13,7 @@
<Grid ColumnDefinitions="22,13,*,20"> <Grid ColumnDefinitions="22,13,*,20">
<ContentPresenter Name="icon" <ContentPresenter Name="icon"
Content="{TemplateBinding Icon}" Content="{TemplateBinding Icon}"
DataContext="{TemplateBinding Content}"
Width="16" Width="16"
Height="16" Height="16"
Margin="3" Margin="3"
@ -26,6 +27,7 @@
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<ContentPresenter Name="PART_HeaderPresenter" <ContentPresenter Name="PART_HeaderPresenter"
Content="{TemplateBinding Header}" Content="{TemplateBinding Header}"
DataContext="{TemplateBinding Content}"
Margin="{TemplateBinding Padding}" Margin="{TemplateBinding Padding}"
VerticalAlignment="Center" VerticalAlignment="Center"
Grid.Column="2"> Grid.Column="2">
@ -81,6 +83,7 @@
<Panel> <Panel>
<ContentPresenter Name="PART_HeaderPresenter" <ContentPresenter Name="PART_HeaderPresenter"
Content="{TemplateBinding Header}" Content="{TemplateBinding Header}"
DataContext="{TemplateBinding Content}"
Margin="{TemplateBinding Padding}"> Margin="{TemplateBinding Padding}">
<ContentPresenter.DataTemplates> <ContentPresenter.DataTemplates>
<DataTemplate DataType="sys:String"> <DataTemplate DataType="sys:String">

1
src/Perspex.Themes.Default/RadioButton.xaml

@ -21,6 +21,7 @@
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<ContentPresenter Name="PART_ContentPresenter" <ContentPresenter Name="PART_ContentPresenter"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Margin="4,0,0,0" Margin="4,0,0,0"
VerticalAlignment="Center" VerticalAlignment="Center"
Grid.Column="1"/> Grid.Column="1"/>

1
src/Perspex.Themes.Default/TabStripItem.xaml

@ -9,6 +9,7 @@
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"/> Padding="{TemplateBinding Padding}"/>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>

1
src/Perspex.Themes.Default/ToggleButton.xaml

@ -14,6 +14,7 @@
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}" Padding="{TemplateBinding Padding}"
TextBlock.Foreground="{TemplateBinding Foreground}" TextBlock.Foreground="{TemplateBinding Foreground}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"

1
src/Perspex.Themes.Default/ToolTip.xaml

@ -10,6 +10,7 @@
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"/> Padding="{TemplateBinding Padding}"/>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>

1
src/Perspex.Themes.Default/TreeViewItem.xaml

@ -13,6 +13,7 @@
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Header}" Content="{TemplateBinding Header}"
DataContext="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}" Padding="{TemplateBinding Padding}"
TemplatedControl.IsTemplateFocusTarget="True" TemplatedControl.IsTemplateFocusTarget="True"
Grid.Column="1"/> Grid.Column="1"/>

5
src/Perspex.Themes.Default/Window.xaml

@ -6,7 +6,10 @@
<ControlTemplate> <ControlTemplate>
<Border Background="{TemplateBinding Background}"> <Border Background="{TemplateBinding Background}">
<AdornerDecorator> <AdornerDecorator>
<ContentPresenter Name="PART_ContentPresenter" Content="{TemplateBinding Content}" Margin="{TemplateBinding Padding}"/> <ContentPresenter Name="PART_ContentPresenter"
Content="{TemplateBinding Content}"
DataContext="{TemplateBinding Content}"
Margin="{TemplateBinding Padding}"/>
</AdornerDecorator> </AdornerDecorator>
</Border> </Border>
</ControlTemplate> </ControlTemplate>

Loading…
Cancel
Save