MenuItem с Streamgeometry как изображение - PullRequest
0 голосов
/ 05 июня 2019

У меня есть кнопка с ContextMenu. Поэтому, если пользователь нажимает кнопку, отображаются элементы меню. У меня есть один пункт меню, где я хочу, чтобы источник Streamgeometry отображался рядом с текстом. Проблема возникает здесь. Я ожидаю увидеть источник Streamgeometry с левой стороны и текст рядом с ним, но источник Streamgeometry не появится на первом видимом элементе меню, поскольку он покажет вам маленькую зеленую стрелку (указывающую на право ), где вы можете навести на него курсор мыши, и будет показан другой элемент меню с источником и геометрией Streamgeometry. Итак, вопрос здесь в том, как сделать так, чтобы пункт меню с источником Streamgeometry появился в первом пункте меню без зеленой стрелки справа?

Это то, что я сейчас использую как код:

<Button>
    <Button.ContextMenu>
            <ContextMenu>
                <MenuItem Command="{Binding DoSomething}">
                    <TextBlock>
                        just test
                        <Path
                            Width="17"
                            Height="20"
                            Data="{StaticResource StreamGeometrySource}"
                            Fill="{StaticResource MyBrush}" />
                    </TextBlock>
                </MenuItem>
            </ContextMenu>
    </Button.ContextMenu>
</Button>

Я пытался использовать ресурс StreamGeometry из самого пункта меню, но, похоже, это не работает.

Поэтому я хочу иметь простой элемент меню без какого-либо бэкдора (или другого элемента меню), показывающий источник StreamGeometry и текст рядом друг с другом.

Я не нашел ни одного решения, которое бы охватывало мою проблему, здесь, на форуме и в Google.

1 Ответ

0 голосов
/ 05 июня 2019

Не уверен, что такое StreamGeometrySource, но попробуйте это

<Button>
    <Button.ContextMenu>
            <ContextMenu>
                <MenuItem Command="{Binding DoSomething}">
                    <StackPanel Orientation="Horizontal">
                       <TextBlock>
                        just test
                       </TextBlock>
                       <Path
                            Width="17"
                            Height="20"
                            Stretch="Uniform"
                            Data="{StaticResource StreamGeometrySource}"
                            Fill="{StaticResource MyBrush}" />
                    </StackPanel>
                </MenuItem>
            </ContextMenu>
    </Button.ContextMenu>
</Button>

В вашем примере Path является частью текстового блока, который не работает, я думаю

...