protected virtual void OnVisualModified() { if (!IsViewport) { return; } // we actually care about this change ViewportChanged?.Invoke(this, new RawViewportEventArgs(Visual)); }
protected void RaiseLayoutFinished() { if (ViewportChanged != null) { using (Temp <ViewportChangedEventArgs> .Borrow(out ViewportChangedEventArgs changedEventArgs)) { changedEventArgs.Kind = ViewportChangedEventArgs.ChangeKind.LayoutDone; ViewportChanged.Invoke(this, changedEventArgs); } } }
public event EventHandler <ViewportChangedEventArgs> ViewportChanged;//TODO: review this*** => use event queue? protected void RaiseViewportChanged() { if (ViewportChanged != null) { using (Temp <ViewportChangedEventArgs> .Borrow(out ViewportChangedEventArgs changedEventArgs)) { changedEventArgs.Kind = ViewportChangedEventArgs.ChangeKind.Location; ViewportChanged.Invoke(this, changedEventArgs); } } }
//----------------------------------------------- //Scrolling... //----------------------------------------------- public void ScrollToLocation(int x, int y) { if (!this.MayHasViewport || y == this.ViewportTop && x == this.ViewportLeft) { //no change! return; } ScrollToLocation_NotRaiseEvent(x, y, out var hScrollEventArgs, out var vScrollEventArgs); ViewportChanged?.Invoke(this, EventArgs.Empty); }
public void ScrollOffset(int dx, int dy) { if (!this.MayHasViewport || (dy == 0 && dx == 0)) { //no change! return; } this.InvalidateGraphics(); ScrollOffset_NotRaiseEvent(dx, dy, out var hScrollEventArgs, out var vScrollEventArgs); ViewportChanged?.Invoke(this, EventArgs.Empty); this.InvalidateGraphics(); }
private void ScrollHandler(object sender, ScrollChangedEventArgs e) { int startScreenX = Convert.ToInt32( Math.Floor(Parent.HorizontalOffset / (TileSize * ScreenWidth))); int startScreenY = Convert.ToInt32( Math.Floor(Parent.VerticalOffset / (TileSize * ScreenHeight))); int endScreenX = 1 + Convert.ToInt32( Math.Floor((Parent.HorizontalOffset + Parent.ViewportWidth) / (TileSize * ScreenWidth))); int endScreenY = 1 + Convert.ToInt32( Math.Floor((Parent.VerticalOffset + Parent.ViewportHeight) / (TileSize * ScreenHeight))); if (startScreenX < 0) { startScreenX = 0; } if (startScreenY < 0) { startScreenY = 0; } if (endScreenX >= ScreenCountH) { endScreenX = ScreenCountH - 1; } if (endScreenY >= ScreenCountV) { endScreenY = ScreenCountV - 1; } var a = new ViewportEventArgs() { StartScreenX = startScreenX, StartScreenY = startScreenY, EndScreenX = endScreenX, EndScreenY = endScreenY }; ViewportChanged?.Invoke(this, a); }
protected override void OnViewportChanged(ViewportChangedEventArgs e) { base.OnViewportChanged(e); ViewportChanged?.Invoke(this, e); }
protected virtual void RaiseViewportChanged(SizeChangedInfo args) => ViewportChanged?.Invoke(this, args);
private void OnViewportChanged([CallerMemberName] string propertyName = null) { _modified = true; ViewportChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); }
public LimitedViewport() { _viewport.ViewportChanged += (sender, args) => ViewportChanged?.Invoke(sender, args); }
private void OnViewportChanged(object sender, PropertyChangedEventArgs e) { ViewportChanged.Invoke(sender, e); }
private void OnViewportChanged() { ViewportChanged?.Invoke(this, new EventArgs()); }
protected virtual void RaiseViewportChanged() { ViewportChanged?.Invoke(this, EventArgs.Empty); }