在WP7中禁用不具有不透明度的WebBrowser控件

时间:2011-03-17 11:18:55

标签: windows-phone-7 browser opacity

我的应用程序中有一个webbrowser,只需要在没有用户的情况下显示。可以与它互动。

因此,如果我设置IsEnabled = false,浏览器会在页面顶部变为灰色不透明度,我不希望这样。

我该怎么办?

感谢。

2 个答案:

答案 0 :(得分:1)

如果您想禁用用户互动,可以尝试:

  • 将不透明度0.01 Canvas放在Web浏览器的顶部 - 这几乎是不可见的,会阻止用户与之交互。

答案 1 :(得分:1)

要在WebBrowser设置为 false 时阻止IsEnabled控件上的不透明度更改,您需要为其创建自定义样式。它非常简单,只需要如下所示:

 <Style x:Key="WebBrowserStyle1" TargetType="phone:WebBrowser">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="phone:WebBrowser">
                    <Border x:Name="StateContainer" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Opacity="1">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="WebBrowserStates">
                                <VisualState x:Name="Normal"/>
                                <VisualState x:Name="Disabled"/>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Border x:Name="PresentationContainer"/>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

但是,用户将无法与内容进行交互。如果您希望禁用控件但是交互式,我不确定您要实现的目标。如果您要执行的操作是停止用户与控件进行交互,则上述操作会起作用,或者将IsHitTestVisible设置为 false 会获得相同的结果,但更改次数较少:P