我正在尝试使用Petzold的LineChartGenerator(来自http://msdn.microsoft.com/en-us/magazine/ee291567.aspx),它作为StaticResource访问:
<Window.Resources>
<src:CensusData x:Key="censusData" />
<charts:LineChartGenerator
x:Key="generator"
ItemsSource="{Binding Source={StaticResource censusData}}"
Width="300"
Height="200">
</charts:LineChartGenerator.VerticalAxis>
</charts:LineChartGenerator>
</Window.Resources>
但我想将宽度和高度绑定到控件的当前宽度和高度。不应该这样:
<charts:LineChartGenerator
x:Key="generator"
ItemsSource="{Binding Source={StaticResource censusData}}"
Width="{Binding ElementName=MyControl, Path=Width}"
Height="200">
但是这给了我一个绑定错误:无法为目标元素找到管理FrameworkElement或FrameworkContentElement。 BindingExpression:路径=宽度;的DataItem = NULL; target元素是'LineChartGenerator'(HashCode = 52313994); target属性是'Width'(类型'Double')
有可能这样做吗?我有各种各样的kludges,但他们都将控制的宽度设置为LineChartGenerator的宽度,这实际上不是理想的效果!
由于
安德鲁
答案 0 :(得分:1)
我相信,因为你的width属性在Window.Resources标签中,所以宽度绑定应该看起来像这样......
Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Window}}, Path=ActualWidth}"