none
WPF, ContextMenu позади рисунка RRS feed

  • Вопрос

  • подключаю ContextMenгu к элементу Image и контекстное меню отображается позади рисунка(за риснком) и его не видно(но при этом работает).

    Как это исправить ?

    9 сентября 2011 г. 17:23

Ответы

Все ответы

  • > подключаю ContextMenгu к элементу Image и контекстное меню отображается позади рисунка

    обычно такое не происходит. приведите xaml, чтобы воспроизвести ситуацию.

    10 сентября 2011 г. 11:37
  • <Window x:Class="Redactor.Fotos"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Height="350" Width="525" 
            WindowStartupLocation="CenterScreen" ResizeMode="NoResize"  WindowStyle="None" 
            AllowsTransparency="True" Background="White">
        <Window.Resources>
            <Style TargetType="MenuItem">
                <Setter Property="Control.FontFamily" Value="Monotype Corsiva"/>
                <Setter Property="Control.FontSize" Value="20"/>
                <Setter Property="Control.FontWeight" Value="Bold"/>
                <Setter Property="Control.Background" Value="White"/>
                <Setter Property="Control.Foreground" Value="Blue"/>
            </Style>
        </Window.Resources>
        <DockPanel>
            <Grid DockPanel.Dock="Top">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0"  Text="Фото " FontSize="16" Name="Info" Foreground="Blue"></TextBlock>
                <TextBlock Grid.Column="1" HorizontalAlignment="Center" TextAlignment="Center" Text="Fotos" Foreground="Blue" FontSize="16" Name="FTitle" ></TextBlock>
                <TextBlock Grid.Column="2"  HorizontalAlignment="Right" Text="× закрыть" Width="78" Opacity="1" Foreground="Blue" FontSize="16" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"></TextBlock>
            </Grid>
            
            <Button DockPanel.Dock="Left" Background="White" Opacity="0.7" Content="◄" FontSize="24" Click="Left_Click"></Button>
            <Image Name="img" Opacity="1" HorizontalAlignment="Center" MaxWidth="460" Margin="5" 
                   Stretch="Fill">
                <Image.ContextMenu>
                    <ContextMenu>
                            <MenuItem Header="Добавить" Click="Add_Click"></MenuItem>
                            <MenuItem Header="Удалить" Click="Delete_Click"></MenuItem>
                    </ContextMenu>
                </Image.ContextMenu>
            </Image>
            <Button DockPanel.Dock="Right" HorizontalAlignment="Right" Background="White" Opacity="0.7" Content="►" FontSize="24" MinWidth="30" Click="Right_Click"></Button>
        </DockPanel>
    </Window>
    




     а потом динамически подгружаю изображение:

     

     

                src = new BitmapImage();
                src.BeginInit();
                src.UriSource = new Uri(fotoname, UriKind.Relative);
                src.CacheOption = BitmapCacheOption.OnLoad;
                src.EndInit();
                img.Source = src;
    
    


     


    • Изменено Learx 10 сентября 2011 г. 21:22
    10 сентября 2011 г. 21:21
  • проверил в VS2010, .NET Framework 4.0 контекстное меню выводится над рисунком.
    у вас какая версия .NET?

    • Помечено в качестве ответа Abolmasov Dmitry 13 сентября 2011 г. 13:44
    11 сентября 2011 г. 9:53
  • Вы пробовали перезапускать проект или windows? Проблема после этого сохраняется? Такого поведения не должно быть у контекстного меню.

    Скажи, пожалуйста, какая под какую версию .net у вас wpf приложение и на какой windows вы его тестируете. Если есть возможность, то проверьте на другом компьютере. Спасибо.


    Для связи [mail]
    12 сентября 2011 г. 7:31