WP7-изображение Uri как StaticResource - PullRequest
3 голосов
/ 29 марта 2011

У меня есть приложение для Windows Phone 7, и я пытаюсь переместить некоторые общие элементы в файлы ресурсов.

Текст и стили работают нормально, но я изо всех сил пытаюсь найти правильный способ разделить Ури.

Это пример кода, который я пытаюсь заставить работать.

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
        <shell:ApplicationBarIconButton IconUri="{StaticResource MenuButton1}" Text="Button1"/>
        <shell:ApplicationBarIconButton IconUri="{StaticResource MenuButton2}" Text="Button2"/>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

Я сделал файл AppImages.xaml, и вот код оттуда;

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:String x:Key="MenuButton1">/Images/button1.png</sys:String>
    <sys:String x:Key="MenuButton2">/Images/button2.png</sys:String>
</ResourceDictionary>

Понятно, что я не могу просто использовать строку, но я не знаю, что мне следует использовать.

Я новичок в разработке WP7, поэтому, если я делаю что-то явно не так, пожалуйста, дайте мне знать.

Спасибо, Mike

Ответы [ 2 ]

1 голос
/ 29 марта 2011

Вы можете попытаться сохранить сам Uri как ресурс:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=System">
    <sys:Uri x:Key="MenuButton1">/Images/button1.png</sys:Uri>
    <sys:Uri x:Key="MenuButton2">/Images/button2.png</sys:Uri>
</ResourceDictionary>

Примечание assembly=System в объявлении пространства имен xmlns:sys.Кроме того, когда вы набираете <sys: в редакторе Visual Studio, Uri не будет отображаться в списке IntelliSense, но, кажется, прекрасно использовать его в XAML.

1 голос
/ 29 марта 2011

Без тестирования я бы предположил, что вы пытаетесь использовать строку для параметра, который принимает URI. Вы можете попробовать добавить конвертер, чтобы получить правильный тип. Фреймворк обычно выполняет преобразование автоматически.

Показывает ли отладочный вывод какие-либо (связывающие) ошибки?

Вместо того, чтобы определять ресурсы таким образом, вы можете создать класс, который предоставляет статические свойства для каждого URI. Смотрите пример в моем блоге по адресу: http://blog.mrlacey.co.uk/2011/03/binding-to-static-classes-in-windows.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...