2016-08-28 18 views
0

少しガイダンスが必要です。私は楕円形のイメージを作成しようとしています。これは私が必要私のwpfイメージクリップellipse 4:3

enter image description here

ある3形式

:画像が4である場合Poroblemが発生

<Grid Width="100" Height="100"> 
     <cachedImage:Image Width="100" Height="100" Stretch="UniformToFill" VerticalAlignment="Center" HorizontalAlignment="Center" 
          ImageUrl="https://i.scdn.co/image/efe952d45a24a33360e98b4b42d313576e29cece" > 
      <Image.Clip> 
       <EllipseGeometry Center="50,50" RadiusX="50" RadiusY="50" /> 
      </Image.Clip> 
     </cachedImage:Image> 
    </Grid> 

CachedImage

私の現在のコードを使用して画像を表示するにはこの

enter image description here

ありがとうございます。

+0

CachedImageのホームページから:「HTTPを使用して画像を表示するために、ネイティブのWPF Imageコントロールを使用すると(http URLにSourceを設定すると)、画像はサーバーから毎回ダウンロードされます。コントロールが読み込まれます。本当じゃない。 WPFはURIからロードされたときにイメージをキャッシュします。このコントロールをまったく使用する必要はありません。代わりに、標準のWPF Imageコントロールを使用します。 – Clemens

+0

GitHubのコントロールにつながる[元のStackOverflowの質問](http://stackoverflow.com/q/1878060/1136211)への最もアップvoted答えをお読みください。今日は時代遅れです。 – Clemens

答えて

2

イメージコントロールのWidthHeightを設定し、そのアスペクト比が正確WidthHeightの比率と一致しない限り、同時にStretch=UniformToFillは、必然的に画像の一部をトリミングします。

ただし、Stretch=Uniformを設定し、Imageコントロールを外側のグリッドの中央に配置された別の大きいグリッドに配置することができます。外側のグリッドにClipを適用する必要があります。

<Grid Width="100" Height="100"> 
    <Grid Width="200" HorizontalAlignment="Center"> 
     <Image Stretch="Uniform" 
       Source="C:\Users\Public\Pictures\Sample Pictures\Koala.jpg"/> 
    </Grid> 
    <Grid.Clip> 
     <EllipseGeometry Center="50,50" RadiusX="50" RadiusY="50" /> 
    </Grid.Clip> 
</Grid> 
+0

ありがとうございました。それは助けになった – Patrik

関連する問題