Silverlight 사용자 정의 스플래시 화면의 ProgressBar
-
12-09-2019 - |
문제
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;
}