Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 移除UserControl中某些控件上的模糊效果_C#_Wpf_Xaml - Fatal编程技术网

C# 移除UserControl中某些控件上的模糊效果

C# 移除UserControl中某些控件上的模糊效果,c#,wpf,xaml,C#,Wpf,Xaml,下面的代码是我从代码隐藏创建UI控件的代码。请参阅IsEnabled方法。我只希望用户控件的背景模糊,但问题是它上面的文本块也变得模糊。这是完整的代码。请帮忙 public class UserControlLiveAnalysisBehaviour : System.Windows.Interactivity.Behavior<UserControl> { private UserControl CustomControlContent;

下面的代码是我从代码隐藏创建UI控件的代码。请参阅IsEnabled方法。我只希望用户控件的背景模糊,但问题是它上面的文本块也变得模糊。这是完整的代码。请帮忙

public class UserControlLiveAnalysisBehaviour : System.Windows.Interactivity.Behavior<UserControl>
    {
        private UserControl CustomControlContent;

        private bool IsExecuted;
        protected override void OnAttached()
        {
            AssociatedObject.Loaded += UserControlLoadedHandler;
        }


        private void UserControlLoadedHandler(object sender, RoutedEventArgs e)
        {
            RegisterUserControlActivatedHandler();
        }

        private void RegisterUserControlActivatedHandler()
        {
            CustomControlContent = AssociatedObject;
            if (CustomControlContent == null)
            {
                return;
            }

            var RunDataInstance = RunDataViewModel.Instance;
            RunDataViewModel.RunDataFileSession<string> session = RunDataInstance.GetLiveSessionObject();
            if (session != null)
            {
                if (session.IsLiveAnalysisSession)
                {
                    IsEnabled();
                }
            }
        }

        private void IsEnabled()
        {
            if (!IsExecuted)
            {
                StackPanel stackPanel = new StackPanel();
                ContentControl cc = new ContentControl();
                StackPanel Sp = new StackPanel();
                Sp.HorizontalAlignment = HorizontalAlignment.Center;
                Sp.VerticalAlignment = VerticalAlignment.Center;
                TextBlock tbl = new TextBlock();
                tbl.Text = "Live Analysis is running. Please wait till it completes....";
                tbl.HorizontalAlignment = HorizontalAlignment.Center;
                tbl.VerticalAlignment = VerticalAlignment.Top;
                Panel.SetZIndex(tbl, 1000);
                //tbl.Style = TextBlockStyle();
                Sp.Children.Add(tbl);
                Sp.Background = System.Windows.Media.Brushes.Transparent;
                BlurEffect effect = new BlurEffect();
                effect.Radius = 3;
                CustomControlContent.Effect = effect;
                Sp.Effect = null;
                cc.Content = CustomControlContent.Content;
                stackPanel.Children.Add(cc);
                stackPanel.Children.Add(Sp);
                CustomControlContent.Content = stackPanel;
                IsExecuted = true;
            }
        }
     }
公共类UserControlutionAnalysisBehavior:System.Windows.Interactivity.Behavior
{
私有用户控制CustomControlContent;
执行私人业务;
受保护的覆盖无效附加()
{
AssociatedObject.Loaded+=UserControlLoadedHandler;
}
私有void UserControlLoadHandler(对象发送方,RoutedEventArgs e)
{
RegisterUserControlActivatedHandler();
}
私有无效注册表UserControlActivatedHandler()
{
CustomControlContent=关联对象;
如果(CustomControlContent==null)
{
返回;
}
var RunDataInstance=RunDataViewModel.Instance;
RunDataViewModel.RunDataFileSession会话=RunDataInstance.GetLiveSessionObject();
if(会话!=null)
{
if(session.IsLiveAnalysisSession)
{
IsEnabled();
}
}
}
私有无效已启用()
{
如果(!IsExecuted)
{
StackPanel StackPanel=新的StackPanel();
ContentControl cc=新的ContentControl();
StackPanel Sp=新的StackPanel();
Sp.HorizontalAlignment=HorizontalAlignment.Center;
Sp.VerticalAlignment=垂直对齐中心;
TextBlock tbl=新的TextBlock();
tbl.Text=“实时分析正在运行,请等待它完成…”;
tbl.HorizontalAlignment=HorizontalAlignment.Center;
tbl.VerticalAlignment=VerticalAlignment.Top;
面板设置指数(待定,1000);
//tbl.Style=TextBlockStyle();
Sp.Children.Add(待定);
Sp.Background=System.Windows.Media.Brushes.Transparent;
BlurEffect效果=新的BlurEffect();
影响半径=3;
CustomControlContent.Effect=效果;
Sp.Effect=null;
cc.Content=CustomControlContent.Content;
stackPanel.Children.Add(cc);
stackPanel.Children.Add(Sp);
CustomControlContent.Content=stackPanel;
IsExecuted=真;
}
}
}

您将
效果
应用于
CustomControlContent
,并将其他所有内容放入其中,因此效果会影响其中的所有内容。如果希望某些元素不受此影响,则不能将其添加为已应用效果的控件的子级

与在代码隐藏中创建所有样式不同,简单样式可能更易于维护和更改:

<ContentControl Name="CustomControlContent" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
    <ContentControl.Style>
        <Style TargetType="ContentControl">
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ContentControl">
                                <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                    <ContentPresenter 
                                    Content="{TemplateBinding Content}"
                                    ContentTemplate="{TemplateBinding ContentTemplate}"
                                    Cursor="{TemplateBinding Cursor}"
                                    Margin="{TemplateBinding Padding}"
                                    HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                    VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                    Opacity="0.6">
                                        <ContentPresenter.Effect>
                                            <BlurEffect Radius="5"/>
                                        </ContentPresenter.Effect>
                                    </ContentPresenter>
                                    <TextBlock Text="Update, please wait ..." HorizontalAlignment="Center" VerticalAlignment="Center"/>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ContentControl.Style>
    <ContentControl.Content>
        <Image Source="C:\Users\Public\Pictures\Sample Pictures\Jellyfish.jpg"/>
    </ContentControl.Content>
</ContentControl>

结果:
注意:我还降低了不透明度,这就是图像变得更亮的原因


您将
效果
应用于
CustomControlContent
,并将其他所有内容放入其中,因此效果会影响其中的所有内容。如果希望某些元素不受此影响,则不能将其添加为已应用效果的控件的子级

与在代码隐藏中创建所有样式不同,简单样式可能更易于维护和更改:

<ContentControl Name="CustomControlContent" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
    <ContentControl.Style>
        <Style TargetType="ContentControl">
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ContentControl">
                                <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                    <ContentPresenter 
                                    Content="{TemplateBinding Content}"
                                    ContentTemplate="{TemplateBinding ContentTemplate}"
                                    Cursor="{TemplateBinding Cursor}"
                                    Margin="{TemplateBinding Padding}"
                                    HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                    VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                    Opacity="0.6">
                                        <ContentPresenter.Effect>
                                            <BlurEffect Radius="5"/>
                                        </ContentPresenter.Effect>
                                    </ContentPresenter>
                                    <TextBlock Text="Update, please wait ..." HorizontalAlignment="Center" VerticalAlignment="Center"/>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ContentControl.Style>
    <ContentControl.Content>
        <Image Source="C:\Users\Public\Pictures\Sample Pictures\Jellyfish.jpg"/>
    </ContentControl.Content>
</ContentControl>

结果:
注意:我还降低了不透明度,这就是图像变得更亮的原因