Как установить атрибуты родительского окна нажатием кнопки в WPF

#c# #wpf #xaml

#c# #wpf #xaml

Вопрос:

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

Я получил «Window.xaml», в котором размещено другое окно «ReportGenerator.xaml» во фрейме:

 <Metro:MetroWindow x:Class="ROGERS.Windows.Window"
                   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                   xmlns:local="clr-namespace:ROGERS.Windows"
                   xmlns:ViewModels="clr-namespace:ROGERS.Windows.ViewModels"
                   xmlns:Views="clr-namespace:ROGERS.Windows.Views"
                   xmlns:Metro="http://metro.mahapps.com/winfx/xaml/controls"
                   xmlns:MetroIcons="http://metro.mahapps.com/winfx/xaml/iconpacks"
                   mc:Ignorable="d"
                   Title="ROGERS"
                   TitleAlignment="Center"
                   Icon="App.ico"
                   IconBitmapScalingMode="HighQuality"
                   Height="800" 
                   Width="1440"
                   ShowIconOnTitleBar="True"
                   WindowStartupLocation="CenterScreen"
                   WindowTitleBrush= "#0c3868"
                   BorderBrush="#0c3868"
                   BorderThickness="1,1,1,1">

    <Metro:MetroWindow.DataContext>
        <ViewModels:WindowViewModel />
    </Metro:MetroWindow.DataContext>

    <Frame Source="Views/ReportGenerator.xaml"/>
</Metro:MetroWindow>
  

Я хотел бы установить непрозрачность «Window.xaml» (родительского), нажав кнопку, используемую в «ReportGenerator.xaml». В принципе, в соответствующем «ReportGenerator.xaml.cs» я хотел бы сделать что-то вроде Window.Opacity = 0.25 или так далее. Но я не знаю, как получить доступ к атрибуту Непрозрачности Window.xaml.

Есть ли способ сделать это?

Ответ №1:

Попробуйте этот код

 Window yourParentWindow = (Window)MetroWindow.GetWindow(this);
yourParentWindow.Opacity = 0.25;