8

Silverlight Toolkit 컨트롤을 사용할 때 Expression Blend에서 UserControl을 여는 데 이상한 문제가 있습니다.Expression Blend에서 Silverlight Toolkit 컨트롤을 사용하는 XamlParseException

<controlsToolkit:ListBoxDragDropTarget mswindows:DragDrop.AllowDrop="True" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> 
     <ListBox ItemsSource="{Binding MyItemControls}" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
      <ListBox.ItemsPanel> 
       <ItemsPanelTemplate> 
        <controlsToolkit:WrapPanel/> 
       </ItemsPanelTemplate> 
      </ListBox.ItemsPanel> 
     </ListBox> 
</controlsToolkit:ListBoxDragDropTarget> 

다 같이 런타임에 기대 작품과 내가 XamlParseException 얻을 혼합 내 UserControl을 열려고 할 때, 그러나 비주얼 스튜디오 2008에서 잘 보이는 : [라인을 다음과 같이 내 UserControl을이 툴 킷의 ListBoxDragDropTarget를 사용 0 위치 : 0] 및 디자인보기에서 아무것도 볼 수 없습니다. 더 구체적으로 혼합 불평 :은 TargetType이 일치하지

요소 "ListBoxDragDropTarget는"때문에 System.Windows.Controls.ListBoxDragDropTarget에 문제를 표시 할 수 없습니다.

내 Silverlight 응용 프로그램은 11 월 2009 년 툴킷 버전에서 System.Windows.Controls.Toolkit를 참조하고, 나는 ListBoxDragDropTarget 이러한 네임 스페이스 선언 포함해야했습니다 : 경우

xmlns:controlsToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit" 
xmlns:mswindows="clr-namespace:Microsoft.Windows;assembly=System.Windows.Controls.Toolkit" 

를 I ListBoxDragDropTarget 컨트롤 래퍼를 주석 처리하고 ListBox를 그대로두면 오류없이 디자인 뷰에서 모든 것을 잘 볼 수 있습니다. 내가 ListBoxDragDropTarget 주석과 똑같은 오류가 혼합 발생

<controlsToolkit:BusyIndicator /> 

로 교체하기 때문에 경우 또한,이 실버 라이트 툴킷 컨트롤의 다양한 일어나고 깨달았다. 더 이상 더 이상한 것은 블렌드에서 새로운 실버 라이트 애플리케이션을 시작하면 어떤 종류의 오류없이이 툴킷 요소를 추가 할 수 있으므로 툴킷 어셈블리에 대한 프로젝트 참조와 관련하여 무언가 바보 같이 보입니다.

오류가 TargetType과 관련이 있고 블렌드가 기본 스타일을로드하려고 시도하기 때문에 툴킷 컨트롤의 기본 스타일을 generic.xaml에서로드하는 것과 관련이 있습니다.

이전에이 문제가 발생했거나 문제점이있는 사람이 있습니까? Visual Studio를 들어

+0

버전 :

난 그냥 뒤에 코드에서 멤버 다음 System.Windows.Controls.Toolkit를 참조하고 소개? – AnthonyWJones

+0

Expression Blend 3, 구체적으로 3.0.1927.0 –

답변

11

안녕하세요. 정확히 같은 문제가 있습니다.이 문제가 발생한 프로젝트의 참조를 확인하여 해결했습니다. 모든 참조 된 툴킷 어셈블리는 디스크의 동일한 디렉토리에 있어야합니다.

우리 프로젝트의 System.Windows.Controls.Toolkit.dll에 대한 참조는 항상 우리 문제를 일으키는 원래 경로로 '건너 뛰었습니다'. 우리는 노트 파일 ++ (또는 좋아하는 텍스트 편집기)에서 프로젝트 파일을 편집하고 어셈블리를 찾을 수있는 경로를 하드 코딩하여 해결했습니다.

희망이 도움이됩니다.

+0

I에 있습니다. 이 문제가 오래 전에 있었던 프로젝트를 버렸고 다른 일을 끝냈습니다. 그래서 이것을 검증 할 방법이 없습니다. 다른 사람들이이 문제에 직면 해있는 것처럼 보이기 때문에 지금은 대답으로 표시 할 것입니다. –

+0

고마워, 너는 나를 위해 2 단 어리 석음을 정말 저장했다;) – Peymankh

+0

내 하루도 많이 보내 주셔서 감사합니다 !! :) –

5

(아마 너무 혼합) 당신에 대한 참조를 추가해야합니다 : \ 프로그램 파일 \은 Microsoft SDKs \ 실버 \ 4.0의 \ 툴킷 \ Apr10 \ 빈 :

System.Windows.Controls.Toolkit.Internals.dll

"C \ System.Windows.Controls.Toolkit.Internals.dll "

+0

이렇게하면 해결되었습니다. 최신 버전 (Silverlight 5)은 "C : ₩ Program Files (x86) ₩ Microsoft SDKs ₩ Silverlight ₩ v5.0 ₩ Toolkit ₩ dec11 ₩ Bin ₩ System.Windows.Controls.Toolkit.Internals.dll – andrewpm

1

SL 5 Expression Blend를에 BusyIndicator 툴킷 컨트롤을 사용할 때 실버 라이트 5 툴킷을 사용하고 XamlParseException에 봉착는, 위의 모든 솔루션은 도움하지만 난 또 다른 해결 방법은 오히려 더러운를 찾았지만 나에 BusyIndecator 작품을 만들 수 있습니다 않았다 익스프레션 블렌드는

  1. public class BusyIndicatorEx : BusyIndicator 
    { 
        public BusyIndicatorEx() 
        { 
         this.DefaultStyleKey = typeof(BusyIndicatorEx); 
        } 
    } 
    
  2. 유도 제어를위한 스타일을 만들 (단지 토륨 BusyIndicator 소스 코드에서 스타일을 복사 컨트롤에서 파생 local:BusyIndicatorEx에 EMES/generic.xaml을, 및 변경 대상 유형)

+0

어떻게 복사합니까? BusyIndicator의 스타일? "themes/generic.xaml"은 어디에 있습니까? – Jordan

0

은 내가 랩 패널에 뒤에 코드에서 더미 참조를 도입하여 해결되었습니다 같은 문제가 있었다.

내가 알고있는 것은 C++이지만 약간은 짐작할 만하다. 템플릿과 최상위 페이지가 아니라 내부에 래핑 패널에 대한 간접 참조가 있으므로 초기화시로드 할 항목을 알지 못한다고 상상할 수있다. . 정말 정확한 이유를 이해하고 싶습니다. 혼합의

System.Windows.Controls.WrapPanel _dummy;