2011-03-16 72 views
0

我无法弄清楚我做错了什么。我有一个UserControl,它有一个垂直的进度条,并在它下面有一个标签。silverlight垂直进度条

<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> 

它应该看起来像在最后一个钢琴keybord ... 旋转变换的进度切碎后...我是怎么做错了?如何解决这个问题?

回答

0

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

而且SilverlightSpy现在是免费的阅读并可以在运行时经过真实的视觉树。

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

0

这是一个剪裁问题。你在任何地方都设置了太多的高度和宽度,并且知道哪一个控制了尺寸是令人困惑的。此外,ListBox中的堆叠在布局上工作,并且RotateTransform仅在最终的可视通道上有效,因此它将旋转修剪后的进度条。

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

如果您不想创建模板,那么您需要删除UserControl中的主网格,并使用Canvas代替。画布不剪裁。他们让你的元素自由浮动,这可能是你想要的。