Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ContextMenu / 8 сообщений из 8, страница 1 из 1
19.06.2010, 22:06
    #36696639
Crossificio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ContextMenu
Как единственный элемент ContextMenu привязать сразу к нескольким контролам декларативно, но Header бы меню биндился например на свойство Tag контрола? Как-то в ресурсы его добавить? Приведите, пожалуйста, пример кода. Спасибо.
...
Рейтинг: 0 / 0
20.06.2010, 18:36
    #36697125
Crossificio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ContextMenu
сейчас имею такой код:
Код: 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
21.06.2010, 11:49
    #36697977
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ContextMenu
Crossificio,
покажи полностью
...
Рейтинг: 0 / 0
21.06.2010, 22:05
    #36699344
Crossificio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ContextMenu
вот что в аутпут
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
21.06.2010, 22:11
    #36699349
Crossificio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ContextMenu
Код: 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
22.06.2010, 12:01
    #36700124
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ContextMenu
Crossificio,

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

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


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