WPF CustomControl и привязка изображений - PullRequest
0 голосов
/ 12 апреля 2010

Я действительно злюсь уже 2 дня из-за глупой проблемы. Я уже задавал вопрос здесь, но, похоже, мой вопрос в потерянном, где никто не увидит его снова. Итак, вот моя простая проблема:

У меня есть проект, содержащий CustomControl (проект библиотеки), этот код пользовательского элемента управления наследуется от элемента управления Window. Так что у него есть свойство Icon, унаследованное от него. В коде XAML для создания дизайна элемента управления где-то в моем ResourceDictionary я хочу поместить изображение, привязанное к свойству Icon.

...    
<Image Grid.Column="0" Margin="3" Width="27" Height="27" Source="{Binding Icon}" />
...

Затем у меня есть второй проект (проект приложения WPF), ссылающийся на мой первый и использующий это окно настраиваемого элемента управления, где я устанавливаю свойство Icon. Свойство значка установлено правильно, потому что я вижу значок на панели задач, но изображение не отображается, похоже, моя привязка не работает.

<SILU:FlatForm x:Class="SILU_MovieManager.WinMain"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:SILU="clr-namespace:SILU_Controls;assembly=SILU_Controls"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="SILU Movie Manager" Height="425" Width="682" Loaded="FlatForm_Loaded" Icon="/SILU_MovieManager;component/Resources/Images/Film.ico">
    <Grid>

    </Grid>
</SILU:FlatForm>

Я действительно не знаю, как связать это, вот одно решение, которое я получил здесь, но оно не работает для меня. ( Решение )

1 Ответ

0 голосов
/ 12 апреля 2010

Я не пробовал это решение, и это сделано с помощью кода и для значков

<Window x:Class="WPFWindowAPP.IconLoader"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="WPFWindowAPP" Height="164" Width="405"

>

<Canvas>


    <Button Name="btn" Click="btnClick" Canvas.Top="40" Canvas.Right="90" Width="75">Load Icon</Button>

    <Image Name="icoDisplay" Canvas.Left="10" Canvas.Top="80" Stretch="None" />

</Canvas>

    void btnClick(object sender, RoutedEventArgs e)        {

IconImage ico = IconImage.ExtractAssociatedIcon (filePath.Text); Bitmap bmp = ico.ToBitmap (); MemoryStream strm = new MemoryStream (); bmp.Save (strm, System.Drawing.Imaging.ImageFormat.Png);
BitmapImage bmpImage = new BitmapImage ();
bmpImage.BeginInit ();
strm.Seek (0, SeekOrigin.Begin); bmpImage.StreamSource = strm; bmpImage.EndInit ();
icoDisplay.Source = bmpImage; }

...