UWP - BitMapImage to Icon - PullRequest
       22

UWP - BitMapImage to Icon

0 голосов
/ 27 октября 2018

Я пытаюсь создать UWP с помощью Visual Studio 2017. Я хочу добавить в качестве NavigationViewItem информацию об учетной записи Microsoft. Для этого я получаю с GraphServiceClient DisplayName и изображение профиля, сохраненные в виде строки и BitMapImage соответственно.

Что я хотел бы сделать, это обрезать BitMapImage по кругу и использовать его в свойстве Icon NavigationViewItem.

1 Ответ

0 голосов
/ 30 октября 2018

То, что я хотел бы сделать, это циклически обрезать BitMapImage и использовать его в свойстве Icon элемента NavigationViewItem.

Вы не можете использовать BitmapImage в качестве значка NavigationViewItem , он получает только IconElement .

Чтобы достичь цели, вы можете напрямую сделать макет в NavigationViewItem.Content, чтобы показать изображение и текст. Например, вы можете использовать Ellipse и ImageBrush для отображения изображения в форме круга.

Вот простой пример кода:

<NavigationView>
        <NavigationView.MenuItems>
            <NavigationViewItem Name="SalahNavItem" Tag="Salah">
                <NavigationViewItem.Content>
                    <StackPanel Orientation="Horizontal" >
                        <Ellipse Width="40" Height="40">
                            <Ellipse.Fill>
                                <ImageBrush x:Name="img"></ImageBrush>
                            </Ellipse.Fill>
                        </Ellipse>
                        <TextBlock Text="Custom" VerticalAlignment="Center"></TextBlock>
                    </StackPanel>
                </NavigationViewItem.Content>
            </NavigationViewItem>
            <NavigationViewItem Name="AppsNavItem"  Content="Apps" Tag="apps">
            </NavigationViewItem>
        </NavigationView.MenuItems>
</NavigationView>
BitmapImage bitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/car.png"));
img.ImageSource = bitmapImage;

enter image description here

...