2008-08-27 12 views

答えて

2

ええ - あなたはどちらも自分で質問して答えていますが、それは私が考えることができる2つの選択肢の1つです。問題が発生する理由は、MediaElementコントロールから取得した機能やコントロールの一部が失われてしまうためです。もう1つの方法は、これを行うことです。

  1. MediaElementをページに追加します。
  2. そのようにあなたあなたのMediaElement

にクリッピングパスを適用します右

  • Blendで四角形をクリックして、「クリッピングパスを作成」を選択し、コーナー半径
  • を望んでいた、その上に四角形を描画し、設定MediaElementコントロールを使用していますが、必要な丸みのあるエフェクトを得たいと思っているものを「クリップ」できます。

    この例では、クリップされたMediaElementを示しています。ベクターパスを描くのは簡単ではないことは分かっていますが、Blendで開いていれば丸いMediaElementが表示されます。

    <MediaElement 
         Height="132" Width="176" Source="Egypt2007.wmv" 
         Clip="M0.5,24.5 C0.5,11.245166 11.245166,0.5 24.5,0.5 L151.5,0.5 
           C164.75484,0.5 175.5,11.245166 175.5,24.5 L175.5,107.5 C175.5, 
           120.75484 164.75484,131.5 151.5,131.5 L24.5,131.5 C11.245166, 
           131.5 0.5,120.75484 0.5,107.5 z"/> 
    
  • 1

    角丸長方形を使用し、VideoBrushは、表示されたのMediaElementを使用した上で、あなたにどんな機能/コントロールを失うことはありません - 要素がとにかくXAMLでなければならないので、あなたが通常の再生/一時停止を使用して、それを制御することができます/ Stopメソッド。ただし、再生は長方形で行われます。クリップ領域を使用すると、領域のサイズを変更するのが難しくなるため、扱いにくいものになります。あなたがレイアウトの柔軟性を持っているので、Rectangleがより優れています。

    <MediaElement x:Name="myElement" Source="clip.wmv" Visibility="Collapsed"/> 
    <Rectangle RadiusX="10" RadiusY="10" Width="640" Height="480"> 
        <Rectangle.Fill> 
         <VideoBrush Source="myElement" Stretch="Uniform"/> 
        </Rectangle.Fill> 
    <Rectangle/> 
    
    0

    とクリップパスは、あなたの「ハード」エッジを与える - (私はこれは非常に多くの処理能力を必要と想像するが)あなたも、同様OpacityMaskを使用することができます。

    0

    この

    <Border CornerRadius="8" BorderBrush="Black" Background="Black" BorderThickness="3"> 
    <MediaElement HorizontalAlignment="Center" VerticalAlignment="Top" Stretch="Fill" x:Name="Player" Source="/Assets/Videos/x.mp3" /> 
    </Border> 
    
    をお試しください