I have a overview window in my app, just like demo1. I would like the GoOverview to occupy the entire area of its parent window. For eg
1)in demo1 insert lotsa stuff
2)Open the overview window
3)Resize the overview window
I would like the Gooverview to expand and occupy the entire window, just like when a control’s dock property is set to dock.Fill.
I tried trapping the window’s as well as GoOverview Resize event and called RescaleToFit in the handlers, hoping that the GoOverview would expand /contract to occupy all the available space (and there would ne no scroll bars on the overview window. I understand I can remove the scoll bars but that resulta in clipping). But it isnt working.
Can you please let me know what I am doing wrong ?
Visio also has a similar Pan View, where the overview occupies the entir pan view window even on resize
I’m not sure exactly what behavior you want, but it sounds like the most general solution would be to override GoView.UpdateExtent.
Perhaps you can get the behavior you want without that override if you set GoOverview.BackgroundHasSheet to true and the GoOverview.SheetStyle to GoViewSheetStyle.WholeSheet.
But note that that will keep the GoOverview showing the whole GoOverview.Sheet, which I think is what Visio does. If you want to show the whole document contents regardless of the scale and without depending on any Sheet, you’ll need to override GoView.UpdateExtent to update the DocPosition and DocScale appropriately, and override GoView.OnDocumentChanged to notice when the document’s TopLeft and Size properties change for the same reason.
I am using version 18.104.22.168. These properties dont seem to be available in this version.
If I upgrade to version 2.4 will there be any side effects since we going to release our product soon. We are using .NET 1.1 and Visual Studio 2003.
I tried this in demo1 of ver 2.4. Well I guess setting these properties is not giving me the required behavior.
So I guess I will have to do it manually. Looks like UpdateExtent is not there in 2.3. (Correct me if I am wrong)
Can you please tell me which other method do I need to override for 2.3 ?
OnSizeChanged, and maybe OnVisibleChanged and OnCreateControl.
Here’s some completely untested code from which you might get some ideas:
RectangleF sheetrect = ComputeDocumentBounds();
Size dispSize = this.DisplayRectangle.Size;
float newscale = this.DocScale;
if (sheetrect.Width > 0 && sheetrect.Height > 0)
newscale = Math.Min((dispSize.Width / sheetrect.Width), (dispSize.Height / sheetrect.Height));
this.DocScale = newscale;
this.DocPosition = sheetrect.Location;
Thanks I am able to achieve what I wanted too.