1

我有一个文本框,用户在其中输入 uri。这将成为超​​链接的 NavigateUri 属性,允许用户单击链接以打开页面。

<!-- Input TextBox -->
<TextBox x:Name="linkBox" Width="175" Text="{Binding Path=DocRef, Mode=TwoWay}" />

<!-- Hyperlink -->
<TextBlock>
    <Hyperlink DataContext="{Binding ElementName=linkBox}" NavigateUri="{Binding 
               Path=Text}" RequestNavigate="Hyperlink_RequestNavigate">
        <TextBlock DataContext="{Binding ElementName=linkBox}" 
                   Text="{Binding Path=Text}" />
    </Hyperlink>
</TextBlock>

这适用于在 TextBox 中输入整个(绝对)uri。但是,用户只想输入 Uri 的“document.extn”位,并让应用程序将其余资源放在前面(即“ http://www.example.com/ ”位)。如何设置 uri 的基本部分并附加文档引用(最好在 xaml 中)?我遇到了 Hyperlink 的 BaseUri 属性,它听起来很完美,但不幸的是受到保护,所以这不起作用:

<Hyperlink DataContext="{Binding ElementName=linkBox}" 
           BaseUri="http://www.example.com/" NavigateUri="{Binding Path=Text}" 
           RequestNavigate="Hyperlink_RequestNavigate">

有人可以帮忙吗?

4

2 回答 2

2

您也许可以MultiBinding用来连接您需要的 2 个字符串

<Hyperlink DataContext="{Binding ElementName=linkBox}"  RequestNavigate="Hyperlink_RequestNavigate">
    <Hyperlink.NavigateUri>
       <MultiBinding StringFormat="{}{0}{1}">
           <Binding FallbackValue="http://www.example.com/" />
           <Binding Path="Text" />
        </MultiBinding>
    </Hyperlink.NavigateUri>
</Hyperlink>
于 2013-07-31T05:08:42.763 回答
0

您可以使用接口创建自定义转换器IValueConverter以获取基本 uri 附加 uri。

于 2013-07-31T04:46:59.163 回答