3

是否可以使用 WPF 创建一个具有圆形形状并使用正在播放的电影作为背景的窗口?

4

4 回答 4

4

要制作一个非矩形窗口,首先需要做三件事。

  1. 将 Window.WindowStyle 设置为 WindowStyle.None
  2. 将 Window.AllowsTransparency 设置为 True
  3. 将 Window.Background 设置为透明(或 {x:Null})

现在,您的窗口是完全透明的。您可以使用此线程中的其他技巧将一块媒体绘制到窗口的几何图形上。

于 2009-01-16T18:05:14.647 回答
2

你应该只需要在你的 xaml 中抛出这样的东西:

<Ellipse Height="80" Width="80">
    <Ellipse.Fill>
        <VisualBrush TileMode="None">
            <VisualBrush.Visual>
                <MediaElement Source="myMovie.wmv" />
            </VisualBrush.Visual>
        </VisualBrush>
    </Ellipse.Fill>
</Ellipse>

实际上使窗户变圆会更加困难。如果您希望窗户是圆形的,请看一下这个,它应该有助于弄清楚那部分。

高温高压

于 2009-01-16T16:20:32.610 回答
2

不要使用 AllowsTransparency,它的性能很差,兼容性问题很多,请访问此链接以获取替代方案:

http://blogs.msdn.com/wpfsdk/archive/2008/09/08/custom-window-chrome-in-wpf.aspx

编辑:有一个示例,如何使用 SetWindowRgn 为矩形窗口获取圆角,如果您传递一个椭圆区域而不是圆角矩形区域,您将获得一个椭圆窗口,很容易为您创建任何形状的区域可以想象。

于 2009-01-20T14:40:23.443 回答
0

你可以有一个画布作为你的父容器(设置为透明),然后添加一个带有媒体画笔的圆圈作为它的背景。应该这样做。:)

于 2009-01-16T15:51:03.827 回答