C# 扩展器后面的WPF代码赢得';t扩展

C# 扩展器后面的WPF代码赢得';t扩展,c#,wpf,scrollviewer,stackpanel,expander,C#,Wpf,Scrollviewer,Stackpanel,Expander,我用扩展器填充堆垛面板,但它们似乎没有膨胀。我已经开始测试它的按钮。单击事件以确保所有功能都按它应该的方式运行(它是这样的),所以我不明白为什么它不会扩展。上述StackPanel是SurfaceScrollViewer的内容,当展开展开器时,正常行为(如Blend中所示)是将ToggleButton/标题与SurfaceScrollViewer的顶部对齐。我对WPF比较陌生,所以也许我遗漏了一些小东西?这种自动对齐/对焦行为还有其他方面吗 XAML: 我不想用整个样式轰炸您,但“Surface

我用扩展器填充堆垛面板,但它们似乎没有膨胀。我已经开始测试它的按钮。单击事件以确保所有功能都按它应该的方式运行(它是这样的),所以我不明白为什么它不会扩展。上述StackPanel是SurfaceScrollViewer的内容,当展开展开器时,正常行为(如Blend中所示)是将ToggleButton/标题与SurfaceScrollViewer的顶部对齐。我对WPF比较陌生,所以也许我遗漏了一些小东西?这种自动对齐/对焦行为还有其他方面吗

XAML:


我不想用整个样式轰炸您,但“SurfaceScrollViewerHorizontalTop”将水平滚动条放置在内容顶部,“SurfaceExpander”将删除指示箭头。

删除所有难看的代码并使用
项控件。
绑定后有任何建议的教程吗?我不太熟悉。非常感谢!我不经常使用堆栈溢出,有什么方法可以推荐您的帮助吗?
<s:SurfaceScrollViewer Name="TimeScrollViewer" Grid.Row="1" Grid.Column="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Background="#4CAAAAFF" Style="{DynamicResource SurfaceScrollViewerHorizontalTop}" Foreground="#4CAAAAFF">
    <StackPanel Name="TimeStackPanel" Orientation="Horizontal" HorizontalAlignment="Left"/>
</s:SurfaceScrollViewer>
public MainWindow()
{
    InitializeComponent();

    Loaded += delegate
    {
        PopulateScrollViewer(new string[] { "5:00", "5:30", "6:00", "6:30", "7:00", "7:30", "8:00", "8:30", "9:00", "9:30" });
    };
}

public void PopulateScrollViewer(string [] contents)
{
    Style expanderStyle = FindResource("SurfaceExpander") as Style;

    foreach (string s in contents)
    {
        Expander expander = new Expander();

        expander.Style = FindResource("SurfaceExpander") as Style;
        expander.Header = s;
        expander.HorizontalAlignment = HorizontalAlignment.Center;
        expander.FontSize = 21.333;
        expander.Width = TimeScrollViewer.ActualWidth * 0.25;
        expander.Height = TimeScrollViewer.ActualHeight * 0.4;

        Label label = new Label();

        label.Content = "test";

        expander.Content = label;

        TimeStackPanel.Children.Add(expander);
    } 
}