【问题标题】:URI bad format Silverlight NavigationURI 格式错误 Silverlight 导航
【发布时间】:2011-12-21 23:00:00
【问题描述】:

我正在使用 silverlight 制作网站,但偶然发现了这个问题;

我创建了一个自定义控件(菜单按钮),它有一个 Image 和一个 HyperlinkBut​​ton

<UserControl
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:ed="http://schemas.microsoft.com/expression/2010/drawing"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:l2="clr-namespace:SilverlightApplication1.Klassen"
mc:Ignorable="d"
x:Class="SilverlightApplication1.MenuButton"
d:DesignWidth="640" d:DesignHeight="480">

    <Grid x:Name="LayoutRoot">
        <Canvas x:Name="cnvMenuButton" Width="200" Height="50">
            <Image Source="/SilverlightApplication1;component/Buttons/MenuButton1.png" Height="50" Width="50" />
            <HyperlinkButton x:Name="btnLink" Content="HyperlinkButton" Canvas.Left="55" Canvas.Top="14" FontFamily="Lithos Pro Regular" FontSize="14.667" Foreground="Black" Background="{x:Null}" RenderTransformOrigin="0.5,0.5"/>
        </Canvas>
    </Grid>
</UserControl>

我想在我的主页中使用其中的几个,将导航框架导航到所需的页面。因此,由于 HyperlinkBut​​tons 与 NavigateUri 和 TargetName 一起使用,我更改了 MenuButton 页面后面的代码,以便我可以从我的主页指定 URI 和 TargetName

public partial class MenuButton: UserControl
{

    public MenuButton()
    {
         // Required to initialize variables
         InitializeComponent();
    }


        public string Titel
        {
            get { return btnLink.Content.ToString(); }
            set { btnLink.Content = value; }
        }

        public string NaviUri
        {
            set {
                Uri naviuri = new Uri(value);
                btnLink.NavigateUri = naviuri;
                }
        }

        public string TargetFrameString
        {
            get { return btnLink.TargetName; }
            set { btnLink.TargetName = value; }
        }

}

所以在我的主页中指定这些属性后,我得到了这个错误: [net_uri_Badformat] 参数:调试资源字符串不可用。

我在主页中使用的代码:

我的带有自定义控件的 Stackpanel

<StackPanel x:Name="Menu" Orientation="Vertical" Canvas.Top="243" Height="300" Width="100" HorizontalAlignment="Left" RenderTransformOrigin="0.5,0.5" Margin="70,290,0,126">
       <StackPanel.RenderTransform>
            <CompositeTransform/>
        </StackPanel.RenderTransform>
        <l1:MenuButton TargetFrame="contentFrame" NaviUri="Home" Titel="Home"/>
</StackPanel>

同一页面中的内容框架

<navigation:Frame x:Name="contentFrame" d:LayoutOverrides="GridBox" RenderTransformOrigin="0.5,0.5">
            <navigation:Frame.RenderTransform>
                <CompositeTransform/>
            </navigation:Frame.RenderTransform>
            <navigation:Frame.UriMapper>
                <navigationCore:UriMapper>
                    <navigationCore:UriMapping MappedUri="/Views/Home.xaml" Uri="Home"/>
                    <navigationCore:UriMapping MappedUri="/Views/About.xaml" Uri="About"/>
                </navigationCore:UriMapper>
            </navigation:Frame.UriMapper>
</navigation:Frame>

谁能帮我解决这个问题?

【问题讨论】:

    标签: silverlight navigation uri


    【解决方案1】:

    您应该在 Uri 构造函数中包含第二个参数:UriType.Relative

    【讨论】:

    • 这部分工作,他停止给出 [net_uri_Badformat] 错误,但现在我不断收到错误: XML 命名空间 'clr-namespace 中的类型 MenuButton 上不存在属性 'NaviUri': SilverlightApplication1'。但是我明确定义了我控制的属性?
    【解决方案2】:

    您的 NaviUri 属性似乎有点疏忽:它没有 get 方法。无法检索设置的值。

    【讨论】:

      【解决方案3】:
      NavigationService.Navigate(new Uri("/dllPageTest;component/PageFromDll.xaml",UriKind.RelativeOrAbsolute));
      

      这个例子有效!))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-09
        • 2015-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-17
        • 1970-01-01
        相关资源
        最近更新 更多