Windows phone 7 设置webbrowser值+windows phone

Windows phone 7 设置webbrowser值+windows phone,windows-phone-7,xaml,browser,windows-phone-8,Windows Phone 7,Xaml,Browser,Windows Phone 8,我的属性描述中有一个html。当我用textblock ex texthide绑定这个属性时,它在textblock中显示html。但是我不能用这个属性绑定WebBrowser。如何将html字符串绑定到WebBrowser <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Margin="25, 0, 0, 0" Grid.Row="0

我的属性描述中有一个html。当我用textblock ex texthide绑定这个属性时,它在textblock中显示html。但是我不能用这个属性绑定WebBrowser。如何将html字符串绑定到WebBrowser

<ScrollViewer 
  HorizontalScrollBarVisibility="Disabled" 
  VerticalScrollBarVisibility="Auto" 
  Margin="25, 0, 0, 0" 
  Grid.Row="0">

  <StackPanel Orientation="Vertical">

    <TextBlock 
      x:Name="TextHide"  
      Text="{Binding Path=Descrption}" 
      Style="{StaticResource servicesText}" 
      TextWrapping="Wrap" />
    <phone:WebBrowser 
      Source="{Binding Descrption}" 
      x:Name="webBrowserHTML" 
      Foreground="Black" 
      Loaded="webBrowserHTML_Loaded" />

<!--<Image Source="../Images/cont_banner.png" Width="270"  Grid.Row="1"/>-->

    <Button Grid.Row="1">
      <Button.Background>
        <ImageBrush ImageSource="../Images/cont_banner.png" />
      </Button.Background>
      <Button.Content>
        <HyperlinkButton Content="" NavigateUri="callto:3950" />
      </Button.Content>
    </Button>

  </StackPanel>

</ScrollViewer>
有什么想法吗?
致意

为了能够将HTML直接绑定到WebBrowser控件,您必须创建一个附加属性:

namespace YourAppNamespace
{
    public static class WebBrowserHelper
    {
        public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
            "Html", typeof(string), typeof(WebBrowserHelper), new PropertyMetadata(OnHtmlChanged));

        public static string GetHtml(DependencyObject dependencyObject)
        {
            return (string)dependencyObject.GetValue(HtmlProperty);
        }

        public static void SetHtml(DependencyObject dependencyObject, string value)
        {
            dependencyObject.SetValue(HtmlProperty, value);
        }

        private static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var browser = d as WebBrowser;

            if (browser == null)
                return;

            var html = e.NewValue.ToString();

            browser.NavigateToString(html);
        }
    }
}
添加所需的XAML命名空间声明:

xmlns:cxi="clr-namespace:YourAppNamespace"
然后像这样使用它:

<phone:WebBrowser cxi:WebBrowserHelper.Html="{Binding Question.Body}" />

为了能够将HTML直接绑定到WebBrowser控件,您必须创建一个附加属性:

namespace YourAppNamespace
{
    public static class WebBrowserHelper
    {
        public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
            "Html", typeof(string), typeof(WebBrowserHelper), new PropertyMetadata(OnHtmlChanged));

        public static string GetHtml(DependencyObject dependencyObject)
        {
            return (string)dependencyObject.GetValue(HtmlProperty);
        }

        public static void SetHtml(DependencyObject dependencyObject, string value)
        {
            dependencyObject.SetValue(HtmlProperty, value);
        }

        private static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var browser = d as WebBrowser;

            if (browser == null)
                return;

            var html = e.NewValue.ToString();

            browser.NavigateToString(html);
        }
    }
}
添加所需的XAML命名空间声明:

xmlns:cxi="clr-namespace:YourAppNamespace"
然后像这样使用它:

<phone:WebBrowser cxi:WebBrowserHelper.Html="{Binding Question.Body}" />