我有一個UserControl將文本轉換爲形狀。然後,我可以撫摸它或用刷子填充它。當我嘗試使用具有MediaElement(視頻)的Visual Brush作爲源時,我遇到了問題。當我直接在XAML中做如下:在風格中使用MediaElement的VisualBrush
<custom:ExtendedTextBlock Text="Video Filled Text" FontFamily="Arial Black" FontSize="60">
<custom:ExtendedTextBlock.Fill>
<VisualBrush>
<VisualBrush.Visual>
<MediaElement Source="assets\1267066.mp4" Width="596" Height="366" LoadedBehavior="Play" Stretch="UniformToFill" MediaEnded="MediaElement_MediaEnded" MediaFailed="MediaElement_MediaFailed" MediaOpened="MediaElement_MediaOpened" />
</VisualBrush.Visual>
</VisualBrush>
</custom:ExtendedTextBlock.Fill>
</custom:ExtendedTextBlock>
它很好用。當我嘗試使用相同的信息創建樣式時出現問題:
<Style x:Key="VideoFill" TargetType="{x:Type custom:ExtendedTextBlock}">
<Setter Property="StrokeThickness" Value="2" />
<Setter Property="Stroke" Value="Black" />
<Setter Property="Fill">
<Setter.Value>
<VisualBrush>
<VisualBrush.Visual>
<MediaElement Source="assets/1267066.mp4" Width="596" Height="366" LoadedBehavior="Play" LoadedBehavior="Play" Stretch="UniformToFill" MediaEnded="MediaElement_MediaEnded" MediaFailed="MediaElement_MediaFailed" MediaOpened="MediaElement_MediaOpened" />
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</Style>
我得不到填充。沒有MediaOpened被拋出,沒有MediaFailed被拋出。它只是不渲染填充。在SolidColorBrush,LinearGradientBrush,ImageBrush中使用相同的方法都可以很好地工作。誰能告訴我這裏發生了什麼?
Mark Feldmans的回答似乎已經解決了它。謝謝馬克! – Frandelsan