是否可以将属性StretchDirection添加到VisualBrush?我的VisualBrush包含一个媒体元素,media元素具有此属性,但不包含VisualBrush。当我将StretchDirection属性应用于此MediaElement时,它将被忽略。我猜是因为VisualBrush覆盖了它的属性。
public void run() {
for (Job job = jobStack.pop(); job != null; job = jobStack.pop()) {
try
{
System.out.println ("Worker " + id +" started job ");
job.doJob();
System.out.println("Worker " + id + " started job " + job.getId());
}
catch (Exception e)
{
System.out.println ("Exception is caught");
}
}
}
}
答案 0 :(得分:1)
VisualBrush
获取VisualBrush.Visual
的所有内容,并将其用作Brush
。因此,假设您将Stretch="None"
与Image
一起使用,其大小为10000x10000,并将此VisualBrush
设置为Background
的{{1}}。喜欢这段代码:
Window
您可能希望,此图片的一小部分只能呈现,但不会,因为<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ListViewBasicSample" Height="500" Width="500">
<Grid>
<Grid.Background>
<VisualBrush TileMode="None" AlignmentX="Center" Stretch="Fill" AlignmentY="Center" >
<VisualBrush.Visual>
<Grid Background="red">
<Image Source="wp2444179.jpg" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Margin="100" Height="10000" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
</Window>
的所有内容都被视为VisualBrush.Visual
。结果如下:
在这种情况下,VisualBrush
属性没有地方。您可以使用Stretch
,margin
或padding
进行一些小的调整这里。可能会为TileMode
添加Container
(例如Grid
),并为此MediaElement
定义Width
和Height
。
<强> TL;博士; 强>
您询问是否可以在VisualBrush上使用Stretch - 可以使用它,并且正确考虑它,如示例代码中所示。问题出在Container
上。在那里使用这个属性几乎没有意义,因为所有渲染的VisualBrush.Visual
都被用作Brush。 我想说,你伸展的越多,刷子的用量越多:)