0

我不知道我做错了什么。我有一个用户控件,它有一个垂直进度条,下面有一个标签。

<UserControl x:Class="IFramedInBrowser.Code"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" Height="150" Width="15">

    <Grid Width="120" Height="15" >
        <StackPanel Width="120" Height="15" >
            <ProgressBar Grid.Row="0" Value="{Binding Path=Percent}"  Maximum="100" Width="120" Height="15" />
        </StackPanel>
        <TextBlock Grid.Row="1" Height="30" HorizontalAlignment="Left"  Name="textBlock1" Text="{Binding Path=Symbol.Name}" VerticalAlignment="Top" >
            <TextBlock.RenderTransform>
                <RotateTransform Angle="90"/>
            </TextBlock.RenderTransform>
        </TextBlock>
        <Grid.RenderTransform>
                <RotateTransform Angle="-90"/>
        </Grid.RenderTransform> 
        </Grid>
</UserControl>

然后在 ItemsControl 中使用此用户控件

<ItemsControl x:Name="HorizontalListBox"  
                      ItemsSource="{Binding Source={StaticResource MyViewModel}, Path=List}" 
                      HorizontalAlignment="Stretch" 
                      HorizontalContentAlignment="Center" Height="150" 
                      >
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <my:Code DataContext="{Binding}">

                    </my:Code>
                </DataTemplate>
            </ItemsControl.ItemTemplate>

        </ItemsControl>

它应该看起来像最后的钢琴键盘......旋转变换后进度条被砍掉......我做错了什么?如何解决这个问题?

4

2 回答 2

0

您可以尝试为所有控件添加不同的背景颜色以找出控件的大小。

此外,SilverlightSpy 现在是免费只读的,您可以在运行时浏览真实的可视化树。

无论如何,我建议通过自定义模板来更改 ProgressBar 的方向。

于 2011-03-16T11:10:49.903 回答
0

这是一个剪辑问题。您在各处设置了太多的高度和宽度,并且很难知道哪个控制尺寸。此外,ListBox 中的堆叠适用于布局,而 RotateTransform 仅在最终视觉传递时有效,因此它正在旋转剪辑的进度条。

您应该遵循 jumbo 的建议并通过修改模板而不是旋转来创建垂直进度条。

如果您不想创建模板,则需要删除 UserControl 中的主 Grid 并改用 Canvas。画布不剪辑。它们让您的元素自由浮动,这可能是您想要的。

于 2011-03-17T14:30:37.553 回答