C# 矩形的Silverlight设置属性
我有一个长方形,看起来像这样C# 矩形的Silverlight设置属性,c#,silverlight,C#,Silverlight,我有一个长方形,看起来像这样 <Rectangle x:Name="rect" Width="76" Height="76" HorizontalAlignment="Left"> <Rectangle.Fill> <ImageBrush x:Name"image" ImageSource="Media/Tile_01.png"/> </Rectangle.Fill>
<Rectangle x:Name="rect"
Width="76" Height="76"
HorizontalAlignment="Left">
<Rectangle.Fill>
<ImageBrush x:Name"image" ImageSource="Media/Tile_01.png"/>
</Rectangle.Fill>
<Rectangle.RenderTransform>
<TranslateTransform x:Name="rectTranslateTransform" X="0" Y="0" />
</Rectangle.RenderTransform>
</Rectangle>
如何在.cs文件中设置ImageBrush的ImageSource属性?
有没有办法获取rect的子对象?ImageBrush实际上并不是矩形的子对象,就像按钮可以是网格的子对象一样。
矩形.Fill
元素正在使用属性元素语法,请参见以下链接:
因此,可以从XAML中看出矩形具有Fill属性。查看Shape.Fill
的文档,您可以看到这是刷子类型:
因此,您必须将其投射到ImageBrush。完整的代码是:
Brush fill = rect.Fill;
ImageBrush imageBrush = fill as ImageBrush;
// set the source
imageBrush.Source = new BitmapImage(new Uri("/MyNameSpace;images/someimage.png", UriKind.Relative));
这项工作:-
image.ImageSource = new BitmapImage(new Uri("/Media/Tile_02.png", UriKind.Relative));
有些事情要考虑,源PNG已经是76x76了吗?如果不考虑在该分辨率下存储一个集合,则缩放大型图像仍然需要原始的大图像保持在MEM中,并且这可能是昂贵的。
如果将图像重新用于平铺,则最好构建ImageBrush
字典,并将其直接指定给矩形的Fill
属性
质疑为什么要使用矩形也是合理的?为什么不直接使用图像控件