WPF自定义控件呈现不正确

时间:2011-02-12 14:36:01

标签: c# wpf custom-controls

我在wpf中创建了一个像控件一样的轴,但我对控件的标题有问题。它仅在我调整窗口大小时显示,可能是因为在渲染枢轴控件时尚未测量标题控件。 我可能会忘记某些事情或做错事,但我无法弄清楚它是什么。

我创建了一个解决方案来证明问题。您可以在此处下载http://cid-25374d9051083633.office.live.com/self.aspx/Code/WpfApplication6.zip

有没有人能解决这个问题,或者有人能指出我正确的方向吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您的代码似乎存在一些问题,但我还没有设法让它工作,但这是我注意到的。

您可能希望在您的数据透视控件上创建一个依赖项属性,您可以在Generic.xaml中将模板绑定到您的PivotHeaderItemsControl。

    public ObservableCollection<string> Headers
    {
        get { return (ObservableCollection<string>)GetValue(HeadersProperty); }
        set { SetValue(HeadersProperty, value); }
    }

    // Using a DependencyProperty as the backing store for Headers.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty HeadersProperty =
        DependencyProperty.Register("Headers", typeof(ObservableCollection<string>), typeof(Pivot), new UIPropertyMetadata(null));

您的ItemsControls的模板似乎也不正确,您已将GridPresenter包装在网格中,但这意味着ItemsSource中的每个项目将彼此叠加。如果您将ItemsPresenter包装在StackPanel或类似的东西中,则应显示所有项目。

<StackPanel>
    <ItemsPresenter x:Name="ItemsPresenter"
                    Grid.Row="1"
                    Margin="{TemplateBinding Padding}"/>
</StackPanel>

如果您更新样品,我可以再看看。