2015-05-17 77 views
3

簡單的應用程序,只顯示圖像列表。圖像列表必須保持縱橫比,但是全窗寬+有一點餘量。困難的部分是使圖像還有圓角​​。win10應用程序 - 保持寬高比的圓角圖像

想法?

我所擁有的成功只有ImageBrush,但是使用它的任何控件都不會保持寬高比。例如,在這裏你必須設置高度和寬度。

<Rectangle RadiusX="10" RadiusY="10" Stretch="Fill" Width="100" Height="100" > 
    <Rectangle.Fill> 
     <ImageBrush ImageSource="{Binding}"></ImageBrush> 
    </Rectangle.Fill> 
</Rectangle> 

完整的源代碼在這裏:http://1drv.ms/1HlZHVe

回答

0

我通過使用圖像刷了我的圖像(在我的UWP應用程序)很好的圓角,但是要小心,如果你這樣做編程方式 - 我第一次做了我設法使用我的記憶力很差,而且消耗太多(糟糕的編碼)。

我使用的ImageBrush很像你似乎是,但我沒有得到任何畸變的縱橫比;確保你正確設置了Stretch這樣的屬性 - 例如Stretch.UniformToFill

<Rectangle x:Name="rctCardFace" Margin="0" RadiusX="20" RadiusY="20" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
    <Rectangle.Fill> 
     <ImageBrush Stretch="UniformToFill"/> 
    </Rectangle.Fill> 
</Rectangle> 

或者在C#

Uri path = new Uri(_ActiveStyle.BackgroundImagePath, UriKind.Absolute); 
BitmapImage bitmapImage = new BitmapImage(path); 

if (_AppReference.CardManager.TempImgBrush == null) 
{ 
    _AppReference.CardManager.TempImgBrush = new ImageBrush(); 
} 

_AppReference.CardManager.TempImgBrush.ImageSource = bitmapImage; 
_AppReference.CardManager.TempImgBrush.Stretch = _ActiveStyle.BackgroundImageStretch; 
_AppReference.CardManager.TempImgBrush.AlignmentX = _ActiveStyle.BackgroundImageAlignX; 
_AppReference.CardManager.TempImgBrush.AlignmentY = _ActiveStyle.BackgroundImageAlignY; 
cfPreview.ImgB = _AppReference.CardManager.TempImgBrush; 
1

嗨,你可以使用下面的代碼來創建UWP圓角圖片:

<Ellipse Width="250" Height="250"> 
    <Ellipse.Fill> 
     <ImageBrush ImageSource="ms-appx:///highfive.jpg" /> 
    </Ellipse.Fill> 
</Ellipse>