문제

이것은 Silverlight XAML을 쓸 때 정기적으로 발생하는 문제입니다. 이 경우 툴팁이 첨부 된 usercontrol verticaltabstop (코드 첨부)을 만들었습니다. 나는 몇 개의 usercontrols를 주입 한 다음 디버깅 창과 다음 오류를 얻습니다.

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>
도움이 되었습니까?

해결책

이것은 Silvelight의 버그입니다. 주변에서 작업하는 방법은 툴팁의 텍스트 블록에서 이름 속성을 제거하는 것입니다.

나는 당신이 이유가 있기 때문에 그 이름을 가지고 있으며, 코드 에서이 요소를 언급 할 수 없다는 것이 당신에게 문제가 될 것이라고 가정합니다. 이를위한 작업으로 툴팁 XAML을 다음과 같이 대체하십시오.

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

이제 AltLabel.content를 수행하여 텍스트를받을 수 있습니다. 이것이 당신의 문제를 해결하지 못하면 알려주세요.

다른 팁

Silverlight 4에서도 매우 유사한 버그가 있습니다.

<UserControl xmlns:MyNameSpace="clr-namespace:MyNameSpace" x:Class="MyNameSpace.MyClass" 
x:Name="userControl" ... />

그런 다음 XAML 코드에 이름이없는 2 개의 컨트롤을 추가하면 (미리보기 포함) :

<MyNameSpace:MyClass ... />
<MyNameSpace:MyClass ... />

"이름은 이미 나무에 존재합니다 : Usercontrol"예외가 있습니다. Silverlight는 이름을 찾을 수 없기 때문에 ([MyClass])를 찾을 수 없으며 "Usercontrol"을 두 번 찾는 Usercontrol을 찾습니다.

해결책 중 하나는 컨트롤에 이름을 제시하는 것입니다.

<MyNameSpace:MyClass x:Name = "MyControl1" ... />

또는 코드 에서이 컨트롤을 초기화합니다.

MyClass control = new MyClass();
SomeGrid.Children.Add(control);

어제 같은 메시지로 고군분투하고있었습니다 ...parsererror- 이름은 이미 나무에 있습니다. 블라

제 경우에는 문제가 어떻게 든 참조가 추가되었다는 것이 었습니다. (프로젝트에서 프로젝트의 DLL은 BIN/DEBUG 폴더 자체). 이 참조를 제거하면 문제가 해결되었습니다.

이 오류 메시지가 너무 모호한 것 같습니다.

스택 패널에서 'x : name = "tabstopcanvas"'와 같은 이름을 제거하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top