4

これは、Silverlight XAML を記述するときに定期的に発生する問題です。この場合、ToolTip が添付されたユーザー コントロール VerticalTabStop (コードが添付されています) を作成しました。いくつかのユーザー コントロールをインスタンス化すると、デバッグ ウィンドウと次のエラーが表示されます。

Line:52
Error: Unhandled Error in Silverlight 2 Application
Code: 2028
Category: ParserError
Message: The name already exists in the tree: AltLabel.
File:
Line: 0
Position: 0

ボタンの上にマウスを置くと、これらのメッセージが非常に多く表示されます。ここで私が間違っていることへの提案はありますか?

乾杯

Nik


<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"
    mc:Ignorable="d"
    x:Class="SLEntityPresenterWebPart.VerticalTabStop"
    d:DesignWidth="20" d:DesignHeight="27">

    <Grid x:Name="LayoutRoot">
        <StackPanel>
            <Canvas x:Name="TabStopCanvas" Height="27" Width="20">
                <ToolTipService.ToolTip>
                    <TextBlock x:Name="AltLabel" Text="Substitute me"/>
                </ToolTipService.ToolTip>
                <Image x:Name="IconImg" Canvas.Left="7" Canvas.Top="9" Width="26" Height="26" Source="Contact.png" Canvas.ZIndex="5" Margin="0,-9,0,0" RenderTransformOrigin="0.5,0.5">
                    <Image.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="0.85" ScaleY="0.85"/>
                            <SkewTransform/>
                            <RotateTransform/>
                            <TranslateTransform X="0"/>
                        </TransformGroup>
                    </Image.RenderTransform>
                </Image>
                <Image Source="stop.png" Margin="3,0,0,0"/>
            </Canvas>

        </StackPanel>
    </Grid>
</UserControl>
4

4 に答える 4

5

これは Silvelight のバグです。これを回避するには、ツールチップの TextBlock の Name 属性を削除します。

何らかの理由でそこに名前があり、コードからこの要素を参照できないことが問題になると思います。その回避策として、ツールチップの xaml を次のように置き換えてみてください。

<ToolTipService.ToolTip>
    <ToolTip x:Name="AltLabel" Content="Substitute me" />
</ToolTipService.ToolTip>

これで、AltLabel.Content を実行してテキストにアクセスできます。これで問題が解決しない場合は、お知らせください。

于 2009-03-05T04:21:47.323 に答える
1

スタックパネルで「 x:Name="TabStopCanvas" 」のような名前を削除してみてください。うまくいきました。

于 2013-02-03T19:42:42.323 に答える
1

私は昨日同じメッセージに苦労していました... ParserError - 名前はすでにツリーに存在します:何とか

私の場合、問題はどういうわけか参照が追加されたことでした...それ自体に。(プロジェクト独自の bin/debug フォルダー内のプロジェクトの DLL)。この参照を削除すると、問題が解決されました。

このエラー メッセージはあいまいすぎるようです。

于 2011-08-17T11:04:13.937 に答える