powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ContextMenu
8 сообщений из 8, страница 1 из 1
ContextMenu
    #36696639
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как единственный элемент ContextMenu привязать сразу к нескольким контролам декларативно, но Header бы меню биндился например на свойство Tag контрола? Как-то в ресурсы его добавить? Приведите, пожалуйста, пример кода. Спасибо.
...
Рейтинг: 0 / 0
ContextMenu
    #36697125
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас имею такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<Style x:Key="ImageContextMenuStyle" TargetType="{x:Type Image}">   
                <Setter Property="ContextMenu">
                    <Setter.Value>
                        <ContextMenu>
                            <MenuItem>                                
                                <MenuItem.Header>
                                    <TextBlock Width="300" TextWrapping="Wrap" xml:space="preserve" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Image}}, Path=Tag}"/>                               
                                </MenuItem.Header>
                            </MenuItem>
                        </ContextMenu>                                               
                    </Setter.Value>                    
                </Setter>                
            </Style>

<Image.Tag>
      Тест         
</Image.Tag>

Не отображается текст в меню и всё тут. Как быть?
Естественно, стиль в ресурсах объявлен и привязан к Image так:
Style="{StaticResource ImageContextMenuStyle}"
...
Рейтинг: 0 / 0
ContextMenu
    #36697977
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crossificio,
покажи полностью
...
Рейтинг: 0 / 0
ContextMenu
    #36699344
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что в аутпут
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.Image', AncestorLevel='1''. BindingExpression:Path=Tag; DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
...
Рейтинг: 0 / 0
ContextMenu
    #36699349
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
<Grid>
        <Grid.Resources>
            <Style x:Key="ImageContextMenuStyle" TargetType="{x:Type Image}">
                <Setter Property="ContextMenu">
                    <Setter.Value>
                        <ContextMenu>
                            <MenuItem>
                                <MenuItem.Icon>
                                    <Image Source="/TestApplication;component/Images/ruler.png" />
                                </MenuItem.Icon>
                                <MenuItem.Header>
                                    <TextBlock Width="300" TextWrapping="Wrap" xml:space="preserve" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Image}}, Path=Tag}"/>
                                </MenuItem.Header>
                            </MenuItem>
                        </ContextMenu>
                    </Setter.Value>
                </Setter>
            </Style>
        </Grid.Resources>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="154*" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>        

        ...

        
        <Image Grid.Row="1" Height="16" HorizontalAlignment="Left" Margin="8,4,4,4" Name="CBPMAXImage" Stretch="Fill" VerticalAlignment="Center" Width="16" Source="/TestApplication;component/Images/help.png" MouseLeftButtonDown="contextMenu_MouseLeftButtonDown" ToolTip="Инфо" Style="{StaticResource ImageContextMenuStyle}">            
            <Image.Tag>
                     
                    Тестовый текст!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            </Image.Tag>            
        </Image>
...
</Grid>

...
Рейтинг: 0 / 0
ContextMenu
    #36700124
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crossificio,

думаю тут все просто .
видимо дерево не одно и тоже.
ты используешь прогу snoop?
найди ее ,запусти свою прогу и запусти снуп, и посмотри выше ли твой image чем contextmenu.
если не выше,то используй binding path =tag , elementname=CBPMAXImage
...
Рейтинг: 0 / 0
ContextMenu
    #36700216
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне нежелательно к конкретному ElementName привязываться, так как аналогичных элементов у меня много и для каждого своё контекстное меню
...
Рейтинг: 0 / 0
ContextMenu
    #36700666
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crossificio,

это не берется в расчет.
тебе главное понять логическое дерево элементов чеерз snoop.и тогда ты поймешь куда ссылки ставить ,чтобы добраться до tag.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ContextMenu
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]