private void irControlDocumentos() { ControlDocumento frm = new ControlDocumento(); ControlDocumentoViewModel context = new ControlDocumentoViewModel(ModelUsuario); frm.DataContext = context; Pagina = frm; }
public void IrAPosicion(Punto punto, bool ampliarSeleccion) { AsegurarGraficador(); Punto pt2 = punto + EsquinaSuperior; int pagsig = PaginaSuperior; int indice = PaginaSuperior; IEnumerable <Pagina> pags = _Documento.ObtenerDesde(PaginaSuperior); foreach (Pagina pag in pags) { if (pt2.Y > pag.Dimensiones.Alto + EspacioEntrePaginas) { pt2.Y -= pag.Dimensiones.Alto + EspacioEntrePaginas; } else { break; } indice++; } if (punto.Y < Medicion.Cero && indice > 0) { indice--; pt2.Y -= _Documento.ObtenerPagina(indice).Dimensiones.Alto + EspacioEntrePaginas; } if (punto.Y > Dimensiones.Alto) { indice++; Pagina p = _Documento.ObtenerPagina(indice); if (p != null) { pt2.Y -= p.Dimensiones.Alto + EspacioEntrePaginas; } else { indice--; } } ControlDocumento.RegistrarPosicion(indice, pt2, ampliarSeleccion); }
public void Dibujar(IGraficador graficador, Seleccion seleccion, bool dibujarCursor) { AsegurarGraficador(); Posicion pos = ControlDocumento.ObtenerPosicion(); AsegurarVisibilidad(pos); Medicion inicio = Medicion.Cero - EsquinaSuperior.Y; Medicion derecha = Medicion.Cero - EsquinaSuperior.X; int i = PaginaSuperior; IEnumerable <Pagina> pags = _Documento.ObtenerDesde(PaginaSuperior); graficador.RellenarRectangulo(fondo, Punto.Origen, Dimensiones); foreach (Pagina p in pags) { LienzoPagina l = new LienzoPagina(i, new Punto(derecha, inicio)); l.Dibujar(graficador, _Documento, pos, seleccion, dibujarCursor); if (inicio > Dimensiones.Alto + EsquinaSuperior.Y) { return; } inicio += p.Dimensiones.Alto + EspacioEntrePaginas; i++; } }