public void PropertyGridView_Render_Labels_Values_Correctly() { Point pt = default(Point); using PropertyGrid propertyGrid = new() { SelectedObject = pt, Size = new(300, 200), Visible = true }; PropertyGridView propertyGridView = propertyGrid.TestAccessor().GridView; // For us to be able to render PropertyGridView and its values // PropertyGrid must be visible and have a valid handle. // To be Visible is must either be visible (we don't want this in tests) or // have no parent - so we can't add it to another control (such as a form). propertyGrid.CreateControl(); using var emf = new EmfScope(); DeviceContextState state = new(emf); propertyGridView.PrintToMetafile(emf); // Only care about text: labels and values emf.Validate( state, // Category: Misc Validate.SkipTo( Validate.TextOut("Misc", new(25, 4, 25, 14), stateValidators: State.FontFace(Control.DefaultFont.Name))), // Value for "X" Validate.SkipTo( Validate.TextOut(" ", new(145, 22, 5, 14))), // blank?? Validate.SkipTo( Validate.TextOut(pt.X.ToString(), new(145, 22, 5, 14), stateValidators: State.FontFace(Control.DefaultFont.Name))), // Label for "X" Validate.SkipTo( Validate.TextOut(nameof(Point.X), new(25, 23, 6, 14), stateValidators: State.FontFace(Control.DefaultFont.Name))), // Value for "Y" Validate.SkipTo( Validate.TextOut(" ", new(145, 41, 5, 14))), // blank?? Validate.SkipTo( Validate.TextOut(pt.Y.ToString(), new(145, 41, 5, 14), stateValidators: State.FontFace(Control.DefaultFont.Name))), // Label for "Y" Validate.SkipTo( Validate.TextOut(nameof(Point.Y), new(25, 42, 6, 14), stateValidators: State.FontFace(Control.DefaultFont.Name))), Validate.SkipAll()); } }