2011-03-16 6 views
0

내가 잘못 한 것을 알 수 없다. 세로 진행 막대 및 레이블 아래에있는 Usercontrol 있습니다.silverlight vertical progressbar

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

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

그것은 내가 무엇을했는지 마지막에 피아노 키 자판 ... ProgressBar를 다진하는 회전 변환 후 ... 같아야합니다 dowrong? 이 문제를 해결하는 방법?

답변

0

모든 컨트롤에 다른 배경색을 추가하여 컨트롤 크기를 확인할 수 있습니다.

또한 SilverlightSpy는 의 경우 읽기 전용으로 무료이며 런타임에 실제 비주얼 트리를 탐색 할 수 있습니다.

어쨌든 ProgressBar의 방향을 템플릿을 사용자 지정하여 변경하는 것이 좋습니다.

0

이것은 클리핑 문제입니다. 어디에서나 높이와 너비가 너무 많아서 어느 것이 치수를 제어하는지 혼란 스럽습니다. 또한 ListBox의 스태킹은 레이아웃에서 작동하며 RotateTransform은 최종 시각 패스에서만 유효하므로 클리핑 된 진행률 표시 줄이 회전합니다.

점보의 조언을 따르고 회전이 아닌 템플릿을 수정하여 수직 진행 막대를 만들어야합니다.

템플릿을 만들지 않으려면 UserControl에있는 기본 그리드를 제거하고 대신 캔버스를 사용해야합니다. 캔버스는 자르지 않습니다. 그들은 당신의 요소가 자유롭게 떠 다니게합니다. 아마도 당신이 원하는 것일 것입니다.