То, что я хотел бы сделать, это циклически обрезать 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;