Canvas ImageSource не показывает изображение

1

Вот мой xaml:

<StackPanel Height="333">
    <Canvas x:Name="imageCanvas"
        RenderOptions.BitmapScalingMode="NearestNeighbor"
        RenderOptions.EdgeMode="Aliased">
        <Canvas.Background>
            <ImageBrush x:Name="image1"
                    Stretch="None"
                    AlignmentX="Left"
                    AlignmentY="Top">                                                     
            </ImageBrush>
        </Canvas.Background>                    
    </Canvas>
    <Canvas x:Name="overlayCanvas">
        <Rectangle Name="dummyRectangle" Width="1" Height="2" Fill="Transparent" />
    </Canvas>
</StackPanel>

Вот мой код на С#:

void PlayImages()
{
    string testImageFolder = "C:\\TestImages";

    DirectoryInfo d = new DirectoryInfo(testImageFolder);//Assuming Test is your Folder
    FileInfo[] Files = d.GetFiles("*.tif"); //Getting Text files       
    image1.ImageSource = new BitmapImage(new Uri("C:\\TestImages\\ChanA_0001_0001_0001_0001.tif"));

}

Однако, когда код С# выше был выполнен, в пользовательском интерфейсе ничего не произошло. Мне интересно, где я должен измениться, чтобы изображение появилось? Благодарю.

  • 0
    C:\\Development2012\\ThorImage\\TIS_Development\\GUI\\Controls\\OverlayManager\\TestImages\\ChanA_0001_0001_0001_0001.tif есть ли там изображение?
  • 0
    Да, я так думаю.
Показать ещё 2 комментария
Теги:
xaml
wpf
image
wpf-controls

2 ответа

1
Лучший ответ

Это проблема с панелью стека. Я не уверен, почему, но если некоторые из них удалены, то изображение появляется. Xaml с удаленным ударом стека выглядит следующим образом:

<StackPanel HorizontalAlignment="Left">
                <!--Controls:MenuControl/-->
                <Controls:ToggleButtonControl Margin="0,0,0,0" Height="43" RenderTransformOrigin="0.5,-0.233"  />
            </StackPanel>

            <Canvas x:Name="imageCanvas"
                    RenderOptions.BitmapScalingMode="NearestNeighbor"
                    RenderOptions.EdgeMode="Aliased" Margin="0,52,0,0">
                    <Canvas.Background>
                <ImageBrush x:Name="image1"
                                Stretch="None"
                                AlignmentX="Left"
                                AlignmentY="Top"
                               ImageSource="{Binding Path=Bitmap, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
                </ImageBrush>
                    </Canvas.Background>                    
                </Canvas>
0

Ваш imageCanvas всегда имеет ширину и высоту ноль, потому что вы не добавляете ни одного из детей, не imageCanvas его Width или Height явно.

Измените свой XAML, чтобы вместо него использовать только один холст, и, при необходимости (в зависимости от внешнего контейнера и добавляемых детей) установите его свойства Width и Height:

<Canvas x:Name="overlayCanvas" Height="333" Width="500">
    <Canvas.Background>
        <ImageBrush x:Name="image1" ... />
    </Canvas.Background>                    

    <Rectangle ... />
</Canvas>
  • 0
    Нет, не работает ...... изображение не появляется. Я также изменяю Width = "1" Height = "2" на Width = "100" Height = "200", все еще не работает .....
  • 0
    Нет, новый код тоже не работает .... Я уверен, почему.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню