Почему мой Silverlight PivotViewer не загружается?
У меня есть приложение PivotViewer, над которым я работаю, но я не могу запустить его.
У меня есть хороший файл.cxml (я использовал Pauthor для создания связанных файлов с глубоким увеличением). Я попытался запустить его из отладки VS 2010 int и даже собрал его и попытался запустить его с моего локального хоста. Я проверил это в Firefox и IE. Я убедился, что он находится в контейнере с заданной шириной и высотой. Я удостоверился, что у меня есть самый последний silverlight.js, я установил соответствующие MIME на IIS.
Мой XAML:
<UserControl x:Class="DomPivot.MainPage"
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"
xmlns:pivot="clr-namespace:System.Windows.Pivot;assembly=System.Windows.Pivot"
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="400" Loaded="UserControl_Loaded">
<Grid x:Name="LayoutRoot" Background="White" Width="400" Height="400">
<pivot:PivotViewer x:Name="myPivot" Height="350"></pivot:PivotViewer>
</Grid>
</UserControl>
Моя ошибка:
Error: Unhandled Error in Silverlight Application Set property 'System.Windows.FrameworkElement.Style' threw an exception. [Line: 11 Position: 52]
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at DominionPivot.MainPage.InitializeComponent()
at DominionPivot.MainPage..ctor()
at DominionPivot.App.Application_Startup(Object sender, StartupEventArgs e)
at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
Исходный файл: DomPivotTestPage.aspx Строка: 0
Строка 11 Позиция 52 в main.xaml теперь является знаком равенства для свойства Height сводного наблюдателя. Интересно, что ДО того, как я добавил свойство высоты, проект бросил эту ошибку в знак равенства для свойства x:Name.
Я не понимаю, почему я получаю эту ошибку и был бы признателен за помощь. Я исследовал другие темы здесь, но ни один из этих ответов не работал или не относился к моей ситуации.
ОБНОВИТЬ:
Я пытался убедиться, что это не какая-то другая ошибка, касающаяся невозможности загрузки элемента управления путем попытки загрузить файл.CXML из открытого источника. Тот же результат. Я не думаю, что сам элемент управления загружается, поэтому я даже не могу отладить код, который загружает коллекцию.
Поиск в Google "Необработанная ошибка в свойстве набора приложений Silverlight System.Windows.FrameworkElement.Style вызвала исключение". не поможет Возвращает 24 хита. Половина из них не связаны. Другая половина - это другой человек, который, похоже, сталкивается с той же проблемой, публикуя на полдюжины и более форумов и не получая ответа.
1 ответ
Хорошо.... так вот ряд проблем, которые выявили многие разочаровывающие поиски в Google:
Loaded="UserControl_Loaded"
Я не совсем уверен, как этот параметр оказался в моем теге UserControl, но он не нужен и устранил ошибку, на которую ссылается мой вопрос.
Я также переместил метод LoadCollection из его собственного события в событие UserControl_Loaded и получил возможность развиваться.
Затем я обнаружил, что если вы используете Visual Studio для запуска проекта, убедитесь, что вы указали номер порта как в коде, так и в настройках веб-проекта. Очевидно, что они должны быть изменены при публикации на действующем сервере.
Наконец, меня убедили в том, что вы ДОЛЖНЫ использовать либо свободно доступные инструменты Pauthor, либо плагин Excel, чтобы превратить вашу коллекцию в Deep Zoom. Что также требует использования IIS для разрешения.dzi и.dzc.
Не так. Существует свободно доступный инструмент Microsoft Deep Zoom Composer. В этом инструменте вы можете составить свой глубокий зум и экспортировать коллекцию. В итоге вы получите несколько XML-файлов и папок с изображениями. Я обнаружил, что все, что вам нужно сделать, - это сослаться на файл output_dzc.xml в вашем collection.cxml как на ImgBase и убедиться, что ваши идентификаторы совпадают между этими двумя файлами. Это все.
Я надеюсь, что это спасет кого-то от разочарования, которое я испытал последние несколько недель, пытаясь использовать этот удивительный, но патетически недокументированный контроль.
Я также рекомендовал бы эту запись в блоге:
http://indiandotnet.wordpress.com/2011/02/12/pivot-viewer-example-cricket-world-cup-2011/
Он содержит ссылку на очень простой файл решения pivotviewer VS 2010, который можно использовать для изучения и ознакомления со структурой файлов и каталогов, а также с необходимой структурой файлов XML и настройками решения.