2012-07-30 2 views
0

내 MainPage에서 videobrush의 스케일 변환을 결정하는 슬라이더 컨트롤을 만들려고합니다.이 슬라이더를 어떻게하면 상단에 배치 할 수 있는지 궁금합니다. videobrush (나는 전체 화면이되고 싶습니까?) 현재 비디오 레이아웃이 화면 하단의 두 개의 버튼을 제외하고 전체 화면을 차지하는 배치에 대한 그리드를 사용하고 있습니다.하지만 현재 캔버스를 사용하여 현재 슬라이더를 현재 위치를 고려한 방식으로 배치하고 싶습니다. Windows Phone 장치의 향후 화면 크기 등이 있습니다. 슬라이더의 일정한 치수를 설정하지 않고 정확하게 이것을 수행하는 방법을 잘 모르겠습니다. 예를 들어 슬라이더는 Portrait 모드에서 화면 하단 근처에 수평으로 배치 될 수 있으며 왼쪽과 오른쪽 사이에 50 픽셀 공간을 갖습니다. 이 일이 어떻게 이루어질 수 있는지 누군가가 도와 줄 수 있습니까? 내가 오류를 제공 하나 개 이상의 슬라이더를 배치 할지라도videobrush 위에 슬라이더를 올려 놓는 방법

편집

의 VideoBrush에 작업을 통해 하나의 자식 요소를 배치. 또한 각 슬라이더의 위와 아래에 정보를 추가하여 스택 패널을 선택했습니다 (하위 요소로 하나의 스택 패널 만 허용됩니까?).

<Border x:Name="videoRectangle" Grid.Row="0" Grid.ColumnSpan="2" > 
      <Border.Background> 
       <VideoBrush x:Name="viewfinderBrush"> 
        <VideoBrush.RelativeTransform> 
         <CompositeTransform x:Name="viewfinderBrushTransform" CenterX=".5" CenterY=".5" Rotation="90" /> 
        </VideoBrush.RelativeTransform> 
       </VideoBrush> 
      </Border.Background> 

      <!--<StackPanel VerticalAlignment="Top"> 
       <TextBlock x:Name="resolutionValueTextBlock" HorizontalAlignment="Center" Text="{Binding Value, ElementName=resolutionSlider}"/> 
       <Slider x:Name="resolutionSlider" HorizontalAlignment="Stretch" Margin="50,5,50,5"/> 
       <TextBlock x:Name="resolutionTextBlock" HorizontalAlignment="Center" Text="resolution"/> 
      </StackPanel>--> 

      <StackPanel VerticalAlignment="Bottom"> 
       <TextBlock x:Name="zoomNumberTextBlock" HorizontalAlignment="Center" Text="{Binding Value, ElementName=zoomSlider}"/> 
       <Slider x:Name="zoomSlider" HorizontalAlignment="Stretch" Margin="50,5,50,5"/> 
       <TextBlock x:Name="zoomTextBlock" HorizontalAlignment="Center" Text="zoom"/> 
      </StackPanel> 

</Border> 

내가 모두 stackpanels 사용할 수 있지만, 내가 생각하지 않으면 나는 단지 바닥 하나를 사용해야 싶습니다 가능합니다. 그리드와

답변

1

숙박 일 :

<Grid> 
    <Rectangle> 
     <Rectangle.Fill> 
      <VideoBrush ... /> 
     </Rectangle.Fill> 
    </Rectangle> 
    <Slider HorizontalAlignment="Stretch" 
      VerticalAlignment="Bottom" 
      Margin="50,5,50,5"/> 
</Grid> 
+0

IT는 VideoBrush에 걸쳐 하나 이상의 자식 요소를 설정할 수 있습니까? 나는 실제로 슬라이더의 숫자 값과 슬라이더 이름, 페이지 상단과 페이지 하단에 각각 textblock을 사용하여 두 개의 슬라이더 컨트롤을 구현하고 싶습니다.하지만 오류가 발생합니다. '하위'속성이 두 번 이상 설정되었습니다. '참조 용으로 원래의 게시물을 편집했습니다. 이것이 가능하지 않다면 달성 될 수있는 또 다른 방법을 권하는 것입니까? – Matthew

+1

두 개의 슬라이더가있는 원래 우편 코드에서 오류가 발생하는 이유는 테두리 요소에 자식이 하나만있을 수 있기 때문입니다. 그리드 요소는 여러 개의 자식을 가질 수 있으므로 Clemens가 제안한대로 그리드를 사용하십시오. Border에서 제공하는 속성이 필요한 경우 Border 요소 내에서 Grid를 사용하십시오. – codechinchilla

관련 문제