2012-09-28 3 views
19

Я хотел бы знать, как изменить непрозрачность фона окна WPF без использования внутренних дочерних элементов управления. Когда я изменяю свойство Window «Opacity» на 0.5, я получаю полупрозрачное окно, но изображение внутри окна также унаследовало значение 0.5 opacity, поэтому как я могу просто сделать непрозрачность только для окна?Изменение непрозрачности фона без изменения непрозрачности содержимого

+0

Просто подписавшись на вопрос, возможно ли это, я думаю, что это не так, но на всякий случай. Вы пытались установить цвет «Прозрачный» и добавить, например, полупрозрачный прямоугольник, который не влияет на остальные ваши объекты? – NestorArturo

ответ

30

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

Включение окна для прозрачности включает в себя пару вещей, которые нужно добавить. Сначала вам необходимо установить Window.AllowsTransparency = True, а также установить Window.WindowStyle = None. WindowStyle.None создает окно без кнопок минимизации, максимизации и закрытия в окне хром, поэтому вам придется обрабатывать это в приложении самостоятельно, а также изменять размер и перемещать окно. После этого вы можете установить Window.Background, чтобы на нем была кисть с установленным на нем Opacity.

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

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     x:Class="WpfApplication1.MainWindow" 
     x:Name="Window" 
     WindowStyle="None" 
     AllowsTransparency="True"> 
    <Window.Background> 
     <SolidColorBrush Color="White" Opacity="0.5"/> 
    </Window.Background> 
    <Grid> 
     <!--Window Content--> 
    </Grid> 
</Window> 

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

+0

Im работает со стилями. Чтобы заставить это работать с установщиком свойств, я установил альфа моего фонового цвета на желаемый уровень непрозрачности и скопировал фоновый код rgb в фоновый сеттер. :) Работает отлично! – C4u

Смежные вопросы