public Task <object> GetDescriptionAsync(IAsyncCompletionSession session, CompletionItem item, CancellationToken token) { if (item.Properties.TryGetProperty("knownmoniker", out string name)) { try { PropertyInfo property = typeof(KnownMonikers).GetProperty(name, BindingFlags.Static | BindingFlags.Public); var moniker = (ImageMoniker)property.GetValue(null, null); var image = new CrispImage { Source = moniker.ToBitmap(100), Height = 100, Width = 100, }; return(Task.FromResult <object>(image)); } catch (Exception ex) { System.Diagnostics.Debug.Write(ex); } } return(Task.FromResult <object>(null)); }
public static void BeforeAny(TestContext context) { // Ensure Microsoft.VisualStudio.ImageCatalog and Microsoft.VisualStudio.Images are references. // ReSharper disable once AssignmentIsFullyDiscarded _ = new CrispImage { Moniker = KnownMonikers.StatusWarning }; }
static CrispImage CreateEnlargedIcon(CrispImage icon) { var bgIcon = new CrispImage { Moniker = icon.Moniker, Width = 48, Height = 48 }; bgIcon.SetBackgroundForCrispImage(ThemeHelper.TitleBackgroundColor); return(bgIcon); }
public FrameworkElement Create() { var image = new CrispImage { Moniker = _glyph.GetImageMoniker(), }; // Inform the ImageService of the background color so that images have the correct background. var binding = new Binding("Background") { Converter = new BrushToColorConverter(), RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(QuickInfoDisplayPanel), 1) }; image.SetBinding(ImageThemingUtilities.ImageBackgroundColorProperty, binding); return(image); }
public FrameworkElement Create() { var image = new CrispImage { Moniker = _glyph.GetImageMoniker(), }; // Inform the ImageService of the background color so that images have the correct background. var binding = new Binding("Background") { Converter = new BrushToColorConverter(), RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(QuickInfoDisplayPanel), 1) }; image.SetBinding(ImageThemingUtilities.ImageBackgroundColorProperty, binding); return image; }
/// <summary> /// Creates an element to display within the TableControl comprised of both an image and text string. /// </summary> internal static FrameworkElement CreateGridElement( ImageMoniker imageMoniker, string text, bool isBold ) { var stackPanel = new StackPanel { Orientation = Orientation.Horizontal, HorizontalAlignment = HorizontalAlignment.Stretch }; var block = new TextBlock { VerticalAlignment = VerticalAlignment.Center }; block.Inlines.Add( new Run(text) { FontWeight = isBold ? FontWeights.Bold : FontWeights.Normal } ); if (!imageMoniker.IsNullImage()) { // If we have an image and text, then create some space between them. block.Margin = new Thickness(5.0, 0.0, 0.0, 0.0); var image = new CrispImage { VerticalAlignment = VerticalAlignment.Center, Moniker = imageMoniker, Width = 16.0, Height = 16.0 }; stackPanel.Children.Add(image); } // Always add the textblock last so it can follow the image. stackPanel.Children.Add(block); return(stackPanel); }
/// <summary> /// Gets a themed <see cref="Image"/> from a value defined in <see cref="KnownImageIds"/> /// </summary> /// <param name="imageId">The image id.</param> public static CrispImage GetImage(int imageId, int size = 0) { var moniker = new ImageMoniker { Guid = KnownImageIds.ImageCatalogGuid, Id = imageId }; if (size < 1) { size = DefaultIconSize; } var image = new CrispImage { Moniker = moniker, Height = size, Width = size, }; return(image); }
public async Task <object> GetDescriptionAsync(IAsyncCompletionSession session, CompletionItem item, CancellationToken token) { if (item.Properties.TryGetProperty("knownmoniker", out string name)) { try { PropertyInfo property = typeof(KnownMonikers).GetProperty(name, BindingFlags.Static | BindingFlags.Public); var moniker = (ImageMoniker)property.GetValue(null, null); await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var image = new CrispImage { Source = await moniker.ToBitmapSourceAsync(100), Height = 100, Width = 100, }; return(image); } catch (Exception ex) { System.Diagnostics.Debug.Write(ex); } } else if (item.Properties.TryGetProperty("IsGlobal", out bool isGlobal) && isGlobal) { var img = GetFileName(item.DisplayText); if (!string.IsNullOrEmpty(img)) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); return(new Image { Source = new BitmapImage(new Uri(img)), MaxHeight = 720 // VS minimum requirements is 1280x720 }); } } return(null); }
/// <summary> /// Gets a themed <see cref="Image"/> from a value defined in <see cref="KnownImageIds"/> /// </summary> /// <param name="imageId">The image id.</param> public static CrispImage GetImage(int imageId, int size = 0) { const int DEFAULT_SIZE = 16; var moniker = new ImageMoniker { Guid = KnownImageIds.ImageCatalogGuid, Id = imageId }; if (size < 1) { size = DEFAULT_SIZE; } var image = new CrispImage { Moniker = moniker, Height = size, Width = size, }; return(image); }
internal IntraTextGoToAdornment(IntraTextGoToTag goToTag, IWpfTextView textView, GoToLocationService goToLocationService) { _textView = textView; _goToLocationService = goToLocationService; _crispImage = new CrispImage(); RenderOptions.SetBitmapScalingMode(_crispImage, BitmapScalingMode.NearestNeighbor); Width = 20; Height = 20; Background = Brushes.Transparent; BorderBrush = Brushes.Transparent; Cursor = Cursors.Hand; Margin = new Thickness(0, 0, 0, 0); Content = _crispImage; Click += OnClick; Update(goToTag); }
/// <summary> /// Creates a GraphicsResult object which is the error block based on the geometry and formatting set for the item. /// </summary> public override GraphicsResult GetGraphics(IWpfTextView view, Geometry unused, TextFormattingRunProperties format) { var block = new TextBlock { FontFamily = format.Typeface.FontFamily, FontSize = 0.75 * format.FontRenderingEmSize, FontStyle = FontStyles.Normal, Foreground = format.ForegroundBrush, Padding = new Thickness(left: 2, top: 0, right: 2, bottom: 0), }; var idRun = GetRunForId(out var hyperlink); if (hyperlink is null) { block.Inlines.Add(idRun); } else { // Match the hyperlink color to what the classification is set to by the user var linkColor = _classificationFormatMap.GetTextProperties(_classificationType); hyperlink.Foreground = linkColor.ForegroundBrush; block.Inlines.Add(hyperlink); hyperlink.RequestNavigate += HandleRequestNavigate; } block.Inlines.Add(": " + _diagnostic.Message); var lineHeight = Math.Floor(format.Typeface.FontFamily.LineSpacing * block.FontSize); var image = new CrispImage { Moniker = GetMoniker(), MaxHeight = lineHeight, Margin = new Thickness(1, 0, 5, 0) }; var border = new Border { BorderBrush = format.BackgroundBrush, BorderThickness = new Thickness(1), Background = Brushes.Transparent, Child = new StackPanel { Height = lineHeight, Orientation = Orientation.Horizontal, Children = { image, block } }, CornerRadius = new CornerRadius(2), // Highlighting lines are 2px buffer. So shift us up by one from the bottom so we feel centered between them. Margin = new Thickness(10, top: 0, right: 0, bottom: 1), Padding = new Thickness(1) }; // This is used as a workaround to the moniker issues in blue theme var editorBackground = (Color)_editorFormatMap.GetProperties("TextView Background")["BackgroundColor"]; ImageThemingUtilities.SetImageBackgroundColor(border, editorBackground); border.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); view.LayoutChanged += View_LayoutChanged; return(new GraphicsResult(border, dispose: () => { if (hyperlink is not null) { hyperlink.RequestNavigate -= HandleRequestNavigate; } view.LayoutChanged -= View_LayoutChanged; })); void View_LayoutChanged(object sender, TextViewLayoutChangedEventArgs e) { if (Location is InlineDiagnosticsLocations.PlacedAtEndOfEditor) { Canvas.SetLeft(border, view.ViewportRight - border.DesiredSize.Width); } } void HandleRequestNavigate(object sender, RoutedEventArgs e) { var uri = hyperlink.NavigateUri; _ = _navigateToLinkService.TryNavigateToLinkAsync(uri, CancellationToken.None); e.Handled = true; } Run GetRunForId(out Hyperlink?link) { var id = new Run(_diagnostic.Id); link = null; var helpLinkUri = _diagnostic.GetValidHelpLinkUri(); if (helpLinkUri != null) { link = new Hyperlink(id) { NavigateUri = helpLinkUri }; } return(id); } }
private static bool TryGetImageElement(CoCoImageKind image, out UIElement imageElement) { var id = image == CoCoImageKind.ClassPublic ? KnownImageIds.ClassPublic : image == CoCoImageKind.ClassInternal ? KnownImageIds.ClassInternal : image == CoCoImageKind.ClassProtected ? KnownImageIds.ClassProtected : image == CoCoImageKind.ClassPrivate ? KnownImageIds.ClassPrivate : image == CoCoImageKind.ConstPublic ? KnownImageIds.ConstantPublic : image == CoCoImageKind.ConstInternal ? KnownImageIds.ConstantInternal : image == CoCoImageKind.ConstProtected ? KnownImageIds.ConstantProtected : image == CoCoImageKind.ConstPrivate ? KnownImageIds.ConstantPrivate : image == CoCoImageKind.DelegatePublic ? KnownImageIds.DelegatePublic : image == CoCoImageKind.DelegateInternal ? KnownImageIds.DelegateInternal : image == CoCoImageKind.DelegateProtected ? KnownImageIds.DelegateProtected : image == CoCoImageKind.DelegatePrivate ? KnownImageIds.DelegatePrivate : image == CoCoImageKind.EnumPublic ? KnownImageIds.EnumerationPublic : image == CoCoImageKind.EnumInternal ? KnownImageIds.EnumerationInternal : image == CoCoImageKind.EnumProtected ? KnownImageIds.EnumerationProtected : image == CoCoImageKind.EnumPrivate ? KnownImageIds.EnumerationPrivate : image == CoCoImageKind.EnumMemberPublic ? KnownImageIds.EnumerationItemPublic : image == CoCoImageKind.EnumMemberInternal ? KnownImageIds.EnumerationItemInternal : image == CoCoImageKind.EnumMemberProtected ? KnownImageIds.EnumerationItemProtected : image == CoCoImageKind.EnumMemberPrivate ? KnownImageIds.EnumerationItemPrivate : image == CoCoImageKind.EventPublic ? KnownImageIds.EventPublic : image == CoCoImageKind.EventInternal ? KnownImageIds.EventInternal : image == CoCoImageKind.EventProtected ? KnownImageIds.EventProtected : image == CoCoImageKind.EventPrivate ? KnownImageIds.EventPrivate : image == CoCoImageKind.ExtensionMethodPublic ? KnownImageIds.ExtensionMethod : image == CoCoImageKind.ExtensionMethodInternal ? KnownImageIds.ExtensionMethod : image == CoCoImageKind.ExtensionMethodProtected ? KnownImageIds.ExtensionMethod : image == CoCoImageKind.ExtensionMethodPrivate ? KnownImageIds.ExtensionMethod : image == CoCoImageKind.FieldPublic ? KnownImageIds.FieldPublic : image == CoCoImageKind.FieldInternal ? KnownImageIds.FieldInternal : image == CoCoImageKind.FieldProtected ? KnownImageIds.FieldProtected : image == CoCoImageKind.FieldPrivate ? KnownImageIds.FieldPrivate : image == CoCoImageKind.InterfacePublic ? KnownImageIds.InterfacePublic : image == CoCoImageKind.InterfaceInternal ? KnownImageIds.InterfaceInternal : image == CoCoImageKind.InterfaceProtected ? KnownImageIds.InterfaceProtected : image == CoCoImageKind.InterfacePrivate ? KnownImageIds.InterfacePrivate : image == CoCoImageKind.MethodPublic ? KnownImageIds.MethodPublic : image == CoCoImageKind.MethodInternal ? KnownImageIds.MethodInternal : image == CoCoImageKind.MethodProtected ? KnownImageIds.MethodProtected : image == CoCoImageKind.MethodPrivate ? KnownImageIds.MethodPrivate : image == CoCoImageKind.ModulePublic ? KnownImageIds.ModulePublic : image == CoCoImageKind.ModuleInternal ? KnownImageIds.ModuleInternal : image == CoCoImageKind.ModuleProtected ? KnownImageIds.ModuleProtected : image == CoCoImageKind.ModulePrivate ? KnownImageIds.ModulePrivate : image == CoCoImageKind.PropertyPublic ? KnownImageIds.PropertyPublic : image == CoCoImageKind.PropertyInternal ? KnownImageIds.PropertyPublic : image == CoCoImageKind.PropertyProtected ? KnownImageIds.PropertyProtected : image == CoCoImageKind.PropertyPrivate ? KnownImageIds.PropertyPrivate : image == CoCoImageKind.StructPublic ? KnownImageIds.ValueTypePublic : image == CoCoImageKind.StructInternal ? KnownImageIds.ValueTypeInternal : image == CoCoImageKind.StructProtected ? KnownImageIds.ValueTypeProtected : image == CoCoImageKind.StructPrivate ? KnownImageIds.ValueTypePrivate : image == CoCoImageKind.Label ? KnownImageIds.Label : image == CoCoImageKind.Local ? KnownImageIds.LocalVariable : image == CoCoImageKind.Namespace ? KnownImageIds.Namespace : image == CoCoImageKind.Parameter ? KnownImageIds.Parameter : image == CoCoImageKind.TypeParameter ? KnownImageIds.Type : image == CoCoImageKind.RangeVariable ? KnownImageIds.FieldPublic : image == CoCoImageKind.Error ? KnownImageIds.StatusError : image == CoCoImageKind.Keyword ? KnownImageIds.IntellisenseKeyword : -27; if (id == -27) { imageElement = default; return(false); } imageElement = new CrispImage { Moniker = new ImageMoniker { Guid = KnownImageIds.ImageCatalogGuid, Id = id }, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Margin = new Thickness(0, 0, 4, 4), }; return(true); }