문제

AA 사용자 정의 스플래시 화면에 Silverlight ProgressBar 컨트롤을 어떻게 포함합니까? 나는 다음을 느슨한 XAML에 넣었습니다 (간단함을 위해 단순화) :

<Grid xmlns="http://schemas.microsoft.com/client/2007"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <ProgressBar />
</Grid>

오류 메시지는 다음과 같습니다. 오류 : 실버 라이트 애플리케이션 코드의 처리되지 않은 오류 : 2007
카테고리 : parsererror
메시지 : 알 수없는 요소 : ProgressBar.

ProgressBar는 다음에 정의 된 표준 컨트롤이 아닙니다 http://schemas.microsoft.com/winfx/2006/xaml/presentation 네임 스페이스?

도움이 되었습니까?

해결책

진행 막대가 있으므로 SL2 또는 SL3을 가정합니다. SL2에 추가되었습니다.

/winfx/2006/XAML/프리젠 테이션 이름 공간은 선언되지 않았지만 SL2/3에서는 확실히 그것이 거주하는 곳입니다. 당신은 대안을 사용했습니다 http://schemas.microsoft.com/client/2007, 이것은 SL1.0의 레거시 네임 스페이스입니다

주어진 코드는 작동하지만 재현하려면 사용자 컨트롤로 루트 요소가 있어야하며 네임 스페이스가 거기에 있어야합니다. 그렇지 않으면 UserControl 태그 자체가 인식되지 않습니다.

<UserControl x:Class="myApp.scratchpad"
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">
       <ProgressBar />
    </Grid>
</UserControl>

SL3에서 잘 작동했습니다.

더 많은 페이지, 루트 요소를 게시하고 SL2/3 네임 스페이스에 대한 참조를 업데이트하고 어떤 SL의 Verison을 사용하고 있는지 말할 수 있습니까?

다른 팁

객체 태그의 SplashScreenSource 속성을위한 경우 XAML은 Silverlight 1+javaScript (비 관리 XAML) 여야합니다. 여기)

<Canvas Background="Black" Width="302" Height="52">
    <Rectangle Canvas.Left="1" Canvas.Top="1" Width="300" Height="30" Fill="White"/>
    <Rectangle x:Name="progressBarFill" Canvas.Left="1" Canvas.Top="1" Height="30" Fill="Blue"/>
</Canvas>

그런 다음 JS 함수를 사용하여 진행 상황을 업데이트하십시오.

function onProgressChanged(sender, eventArgs)
{
    var slPlugin = sender.getHost();
    slPlugin.content.findName("progressBarFill").width = eventArgs.progress * 300;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top