Воспроизведение фильма с круглым окном с использованием WPF

Возможно ли с помощью WPF создать окно, имеющее форму круга и использующее воспроизводимый фильм в качестве фона?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
4 086
4

Ответы 4

у вас может быть холст в качестве родительского контейнера (установленный на прозрачный), а затем добавить круг с кистью мультимедиа в качестве фона. это должно сработать. :)

Вам просто нужно добавить что-то вроде этого в свой xaml:

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

На самом деле сделать окно круглым будет сложнее. Взгляните на это, если вы хотите, чтобы окно было круглым, это должно помочь понять эту часть.

HTH

Чтобы сделать окно непрямоугольной формы, вам нужно сначала сделать три вещи.

  1. Установите Window.WindowStyle в WindowStyle.None
  2. Установите Window.AllowsTransparency на True
  3. Установите Window.Background на Transparent (или {x: Null})

Теперь ваше окно полностью прозрачно. Вы можете использовать другие советы в этом потоке, чтобы нарисовать кусок медиа на геометрии окна.

Не используйте AllowsTransparency, у него очень низкая производительность и много проблем с совместимостью, перейдите по этой ссылке, чтобы найти альтернативы:

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

Обновлено: есть пример использования SetWindowRgn для получения закругленных углов для прямоугольных окон, если вы передадите область эллипса вместо области прямоугольника с закругленными углами, вы получите эллиптическое окно, легко создать область для любой формы, которую вы может себе представить.

Я не понимаю, как что-либо в этой статье применимо к этой проблеме ИЛИ к «AllowsTransparency» ... Они все еще рисуют прямоугольное окно.

GalacticCowboy 20.01.2009 17:49

Другие вопросы по теме