How can I Zoom in a knot is centered in a ScrollPane?

I created a small example application to zoom a node.

The application is currently running to stapling the node when the node becomes larger than the visible area of its container.

I would like to place the node in a ScrollPane and maintain the following properties:

1. If the display window available scrollpane is greater that the node, the node is centered in the display window.
2 scroll of the mouse wheel anywhere in the display zoom in and out, node it is not pan the node.
3. when zooming in or out on the node, the node does not move autour, but zooms still inside or out on the current center of the display window.
4. by pressing and dragging the mouse over the node you can pan the visible portion of the node in the display window.

The behavior of zoom without pan around all node should be exactly the same as the behavior that is clipped by the sample application.

What is the change of the sample request needed to obtain the desired behavior?
import javafx.application.Application;
import javafx.beans.value.*;
import javafx.event.*;
import javafx.geometry.Bounds;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.image.*;
import javafx.scene.input.*;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import javafx.stage.Stage;

public class GraphicsScalingApp extends Application {
  public static void main(String[] args) { launch(args); }

  @Override public void start(final Stage stage) {
    final Group group = new Group(
        createStar(),
        createCurve()
    );

    Parent zoomPane = createZoomPane(group);

    VBox layout = new VBox();
    layout.getChildren().setAll(
        createMenuBar(stage, group),
        zoomPane
    );

    VBox.setVgrow(zoomPane, Priority.ALWAYS);
    Scene scene = new Scene(
        layout
    );

    stage.setTitle("Zoomy");
    stage.getIcons().setAll(new Image(APP_ICON));
    stage.setScene(scene);
    stage.show();
  }

  private Parent createZoomPane(final Group group) {
    final double SCALE_DELTA = 1.1;
    final StackPane zoomPane = new StackPane();

    zoomPane.getChildren().add(group);
    zoomPane.setOnScroll(new EventHandler<ScrollEvent>() {
      @Override public void handle(ScrollEvent event) {
        event.consume();

        if (event.getDeltaY() == 0) {
          return;
        }

        double scaleFactor =
          (event.getDeltaY() > 0)
            ? SCALE_DELTA
            : 1/SCALE_DELTA;

        group.setScaleX(group.getScaleX() * scaleFactor);
        group.setScaleY(group.getScaleY() * scaleFactor);
      }
    });

    zoomPane.layoutBoundsProperty().addListener(new ChangeListener<Bounds>() {
      @Override public void changed(ObservableValue<? extends Bounds> observable, Bounds oldBounds, Bounds bounds) {
      zoomPane.setClip(new Rectangle(bounds.getMinX(), bounds.getMinY(), bounds.getWidth(), bounds.getHeight()));
      }
    });

    return zoomPane;
  }

  private SVGPath createCurve() {
    SVGPath ellipticalArc = new SVGPath();
    ellipticalArc.setContent(
        "M10,150 A15 15 180 0 1 70 140 A15 25 180 0 0 130 130 A15 55 180 0 1 190 120"
    );
    ellipticalArc.setStroke(Color.LIGHTGREEN);
    ellipticalArc.setStrokeWidth(4);
    ellipticalArc.setFill(null);
    return ellipticalArc;
  }

  private SVGPath createStar() {
    SVGPath star = new SVGPath();
    star.setContent(
        "M100,10 L100,10 40,180 190,60 10,60 160,180 z"
    );
    star.setStrokeLineJoin(StrokeLineJoin.ROUND);
    star.setStroke(Color.BLUE);
    star.setFill(Color.DARKBLUE);
    star.setStrokeWidth(4);
    return star;
  }

  private MenuBar createMenuBar(final Stage stage, final Group group) {
    Menu fileMenu = new Menu("_File");
    MenuItem exitMenuItem = new MenuItem("E_xit");
    exitMenuItem.setGraphic(new ImageView(new Image(CLOSE_ICON)));
    exitMenuItem.setOnAction(new EventHandler<ActionEvent>() {
      @Override public void handle(ActionEvent event) {
        stage.close();
      }
    });
    fileMenu.getItems().setAll(
        exitMenuItem
    );
    Menu zoomMenu = new Menu("_Zoom");
    MenuItem zoomResetMenuItem = new MenuItem("Zoom _Reset");
    zoomResetMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.ESCAPE));
    zoomResetMenuItem.setGraphic(new ImageView(new Image(ZOOM_RESET_ICON)));
    zoomResetMenuItem.setOnAction(new EventHandler<ActionEvent>() {
      @Override public void handle(ActionEvent event) {
        group.setScaleX(1);
        group.setScaleY(1);
      }
    });
    MenuItem zoomInMenuItem = new MenuItem("Zoom _In");
    zoomInMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.I));
    zoomInMenuItem.setGraphic(new ImageView(new Image(ZOOM_IN_ICON)));
    zoomInMenuItem.setOnAction(new EventHandler<ActionEvent>() {
      @Override public void handle(ActionEvent event) {
        group.setScaleX(group.getScaleX() * 1.5);
        group.setScaleY(group.getScaleY() * 1.5);
      }
    });
    MenuItem zoomOutMenuItem = new MenuItem("Zoom _Out");
    zoomOutMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.O));
    zoomOutMenuItem.setGraphic(new ImageView(new Image(ZOOM_OUT_ICON)));
    zoomOutMenuItem.setOnAction(new EventHandler<ActionEvent>() {
      @Override public void handle(ActionEvent event) {
        group.setScaleX(group.getScaleX() * 1/1.5);
        group.setScaleY(group.getScaleY() * 1/1.5);
      }
    });
    zoomMenu.getItems().setAll(
        zoomResetMenuItem,
        zoomInMenuItem,
        zoomOutMenuItem
    );
    MenuBar menuBar = new MenuBar();
    menuBar.getMenus().setAll(
        fileMenu,
        zoomMenu
    );
    return menuBar;
  }

  // icons source from: http://www.iconarchive.com/show/soft-scraps-icons-by-deleket.html
  // icon license: CC Attribution-Noncommercial-No Derivate 3.0 =? http://creativecommons.org/licenses/by-nc-nd/3.0/
  // icon Commercial usage: Allowed (Author Approval required -> Visit artist website for details).

  public static final String APP_ICON        = "http://icons.iconarchive.com/icons/deleket/soft-scraps/128/Zoom-icon.png";
  public static final String ZOOM_RESET_ICON = "http://icons.iconarchive.com/icons/deleket/soft-scraps/24/Zoom-icon.png";
  public static final String ZOOM_OUT_ICON   = "http://icons.iconarchive.com/icons/deleket/soft-scraps/24/Zoom-Out-icon.png";
  public static final String ZOOM_IN_ICON    = "http://icons.iconarchive.com/icons/deleket/soft-scraps/24/Zoom-In-icon.png";
  public static final String CLOSE_ICON      = "http://icons.iconarchive.com/icons/deleket/soft-scraps/24/Button-Close-icon.png";
}

Well, it wasn't what I had to do today...

A couple of minor changes first: I wrapped the StackPane in a group so that the ScrollPane component would be informed of these changes to the transformations, according to the ScrollPane Javadocs. And then I have to the minimum size of the StackPane of the size of the viewport (keeping centered content when it is smaller than the viewport).

Initially, I thought I should use a processing of scale to zoom around the display Center (i.e. the point on content that is at the center of the display window). But I found that I still need to set the scroll position subsequently to keep the same display Center, so I dropped that and has been restored by using setScaleX() and setScaleY().

The trick is to set the scroll position after descaling. I calculated the scroll offset in local coordinates, the content scroll and then calculated the new scroll values necessary after scaling. It was a little tricky. The basic observation is that
(hValue-hMin) /(hMax-hMin) = x / (contentWidth - viewportWidth), where x represents the horizontal offset of the left edge of the display window from the left edge of the content.
Then you have centerX = x + viewportWidth/2.

After scaling, the coordinate x of the old centerX is now centerX * scaleFactor. So, just set the new hValue to the new Center. There is a bit of algebra to understand this.

After this, panoramic moving was pretty easy :).

import javafx.application.Application;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.value.*;
import javafx.event.*;
import javafx.geometry.Bounds;
import javafx.geometry.Point2D;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.image.*;
import javafx.scene.input.*;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import javafx.stage.Stage;

public class GraphicsScalingApp extends Application {
  public static void main(String[] args) {
    launch(args);
  }

  @Override
  public void start(final Stage stage) {
    final Group group = new Group(createStar(), createCurve());

    Parent zoomPane = createZoomPane(group);

    VBox layout = new VBox();
    layout.getChildren().setAll(createMenuBar(stage, group), zoomPane);

    VBox.setVgrow(zoomPane, Priority.ALWAYS);

    Scene scene = new Scene(layout);

    stage.setTitle("Zoomy");
    stage.getIcons().setAll(new Image(APP_ICON));
    stage.setScene(scene);
    stage.show();
  }

  private Parent createZoomPane(final Group group) {
    final double SCALE_DELTA = 1.1;
    final StackPane zoomPane = new StackPane();

    zoomPane.getChildren().add(group);

    final ScrollPane scroller = new ScrollPane();
    final Group scrollContent = new Group(zoomPane);
    scroller.setContent(scrollContent);

    scroller.viewportBoundsProperty().addListener(new ChangeListener() {
      @Override
      public void changed(ObservableValue observable,
          Bounds oldValue, Bounds newValue) {
        zoomPane.setMinSize(newValue.getWidth(), newValue.getHeight());
      }
    });

    scroller.setPrefViewportWidth(256);
    scroller.setPrefViewportHeight(256);

    zoomPane.setOnScroll(new EventHandler() {
      @Override
      public void handle(ScrollEvent event) {
        event.consume();

        if (event.getDeltaY() == 0) {
          return;
        }

        double scaleFactor = (event.getDeltaY() > 0) ? SCALE_DELTA
            : 1 / SCALE_DELTA;

        // amount of scrolling in each direction in scrollContent coordinate
        // units
        Point2D scrollOffset = figureScrollOffset(scrollContent, scroller);

        group.setScaleX(group.getScaleX() * scaleFactor);
        group.setScaleY(group.getScaleY() * scaleFactor);

        // move viewport so that old center remains in the center after the
        // scaling
        repositionScroller(scrollContent, scroller, scaleFactor, scrollOffset);

      }
    });

    // Panning via drag....
    final ObjectProperty lastMouseCoordinates = new SimpleObjectProperty();
    scrollContent.setOnMousePressed(new EventHandler() {
      @Override
      public void handle(MouseEvent event) {
        lastMouseCoordinates.set(new Point2D(event.getX(), event.getY()));
      }
    });

    scrollContent.setOnMouseDragged(new EventHandler() {
      @Override
      public void handle(MouseEvent event) {
        double deltaX = event.getX() - lastMouseCoordinates.get().getX();
        double extraWidth = scrollContent.getLayoutBounds().getWidth() - scroller.getViewportBounds().getWidth();
        double deltaH = deltaX * (scroller.getHmax() - scroller.getHmin()) / extraWidth;
        double desiredH = scroller.getHvalue() - deltaH;
        scroller.setHvalue(Math.max(0, Math.min(scroller.getHmax(), desiredH)));

        double deltaY = event.getY() - lastMouseCoordinates.get().getY();
        double extraHeight = scrollContent.getLayoutBounds().getHeight() - scroller.getViewportBounds().getHeight();
        double deltaV = deltaY * (scroller.getHmax() - scroller.getHmin()) / extraHeight;
        double desiredV = scroller.getVvalue() - deltaV;
        scroller.setVvalue(Math.max(0, Math.min(scroller.getVmax(), desiredV)));
      }
    });

    return scroller;
  }

  private Point2D figureScrollOffset(Node scrollContent, ScrollPane scroller) {
    double extraWidth = scrollContent.getLayoutBounds().getWidth() - scroller.getViewportBounds().getWidth();
    double hScrollProportion = (scroller.getHvalue() - scroller.getHmin()) / (scroller.getHmax() - scroller.getHmin());
    double scrollXOffset = hScrollProportion * Math.max(0, extraWidth);
    double extraHeight = scrollContent.getLayoutBounds().getHeight() - scroller.getViewportBounds().getHeight();
    double vScrollProportion = (scroller.getVvalue() - scroller.getVmin()) / (scroller.getVmax() - scroller.getVmin());
    double scrollYOffset = vScrollProportion * Math.max(0, extraHeight);
    return new Point2D(scrollXOffset, scrollYOffset);
  }

  private void repositionScroller(Node scrollContent, ScrollPane scroller, double scaleFactor, Point2D scrollOffset) {
    double scrollXOffset = scrollOffset.getX();
    double scrollYOffset = scrollOffset.getY();
    double extraWidth = scrollContent.getLayoutBounds().getWidth() - scroller.getViewportBounds().getWidth();
    if (extraWidth > 0) {
      double halfWidth = scroller.getViewportBounds().getWidth() / 2 ;
      double newScrollXOffset = (scaleFactor - 1) *  halfWidth + scaleFactor * scrollXOffset;
      scroller.setHvalue(scroller.getHmin() + newScrollXOffset * (scroller.getHmax() - scroller.getHmin()) / extraWidth);
    } else {
      scroller.setHvalue(scroller.getHmin());
    }
    double extraHeight = scrollContent.getLayoutBounds().getHeight() - scroller.getViewportBounds().getHeight();
    if (extraHeight > 0) {
      double halfHeight = scroller.getViewportBounds().getHeight() / 2 ;
      double newScrollYOffset = (scaleFactor - 1) * halfHeight + scaleFactor * scrollYOffset;
      scroller.setVvalue(scroller.getVmin() + newScrollYOffset * (scroller.getVmax() - scroller.getVmin()) / extraHeight);
    } else {
      scroller.setHvalue(scroller.getHmin());
    }
  }

  private SVGPath createCurve() {
    SVGPath ellipticalArc = new SVGPath();
    ellipticalArc.setContent("M10,150 A15 15 180 0 1 70 140 A15 25 180 0 0 130 130 A15 55 180 0 1 190 120");
    ellipticalArc.setStroke(Color.LIGHTGREEN);
    ellipticalArc.setStrokeWidth(4);
    ellipticalArc.setFill(null);
    return ellipticalArc;
  }

  private SVGPath createStar() {
    SVGPath star = new SVGPath();
    star.setContent("M100,10 L100,10 40,180 190,60 10,60 160,180 z");
    star.setStrokeLineJoin(StrokeLineJoin.ROUND);
    star.setStroke(Color.BLUE);
    star.setFill(Color.DARKBLUE);
    star.setStrokeWidth(4);
    return star;
  }

  private MenuBar createMenuBar(final Stage stage, final Group group) {
    Menu fileMenu = new Menu("_File");
    MenuItem exitMenuItem = new MenuItem("E_xit");
    exitMenuItem.setGraphic(new ImageView(new Image(CLOSE_ICON)));
    exitMenuItem.setOnAction(new EventHandler() {
      @Override
      public void handle(ActionEvent event) {
        stage.close();
      }
    });
    fileMenu.getItems().setAll(exitMenuItem);
    Menu zoomMenu = new Menu("_Zoom");
    MenuItem zoomResetMenuItem = new MenuItem("Zoom _Reset");
    zoomResetMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.ESCAPE));
    zoomResetMenuItem.setGraphic(new ImageView(new Image(ZOOM_RESET_ICON)));
    zoomResetMenuItem.setOnAction(new EventHandler() {
      @Override
      public void handle(ActionEvent event) {
        group.setScaleX(1);
        group.setScaleY(1);
      }
    });
    MenuItem zoomInMenuItem = new MenuItem("Zoom _In");
    zoomInMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.I));
    zoomInMenuItem.setGraphic(new ImageView(new Image(ZOOM_IN_ICON)));
    zoomInMenuItem.setOnAction(new EventHandler() {
      @Override
      public void handle(ActionEvent event) {
        group.setScaleX(group.getScaleX() * 1.5);
        group.setScaleY(group.getScaleY() * 1.5);
      }
    });
    MenuItem zoomOutMenuItem = new MenuItem("Zoom _Out");
    zoomOutMenuItem.setAccelerator(new KeyCodeCombination(KeyCode.O));
    zoomOutMenuItem.setGraphic(new ImageView(new Image(ZOOM_OUT_ICON)));
    zoomOutMenuItem.setOnAction(new EventHandler() {
      @Override
      public void handle(ActionEvent event) {
        group.setScaleX(group.getScaleX() * 1 / 1.5);
        group.setScaleY(group.getScaleY() * 1 / 1.5);
      }
    });
    zoomMenu.getItems().setAll(zoomResetMenuItem, zoomInMenuItem,
        zoomOutMenuItem);
    MenuBar menuBar = new MenuBar();
    menuBar.getMenus().setAll(fileMenu, zoomMenu);
    return menuBar;
  }

  // icons source from:
  // http://www.iconarchive.com/show/soft-scraps-icons-by-deleket.html
  // icon license: CC Attribution-Noncommercial-No Derivate 3.0 =?
  // http://creativecommons.org/licenses/by-nc-nd/3.0/
  // icon Commercial usage: Allowed (Author Approval required -> Visit artist
  // website for details).

  public static final String APP_ICON = "http://icons.iconarchive.com/icons/deleket/soft-scraps/128/Zoom-icon.png";
  public static final String ZOOM_RESET_ICON = "http://icons.iconarchive.com/icons/deleket/soft-scraps/24/Zoom-icon.png";
  public static final String ZOOM_OUT_ICON = "http://icons.iconarchive.com/icons/deleket/soft-scraps/24/Zoom-Out-icon.png";
  public static final String ZOOM_IN_ICON = "http://icons.iconarchive.com/icons/deleket/soft-scraps/24/Zoom-In-icon.png";
  public static final String CLOSE_ICON = "http://icons.iconarchive.com/icons/deleket/soft-scraps/24/Button-Close-icon.png";
}

Tags: Java

Similar Questions

  • How can I Zoom in other than the default %? I want to do 85% on some pages and can't get there.

    I do not like the new feature tools, like the better toolbar. I can zoom in is no longer the necessary %, is only in whole numbers of dozens. Sometimes to do between setting of to get the pages to display right and be legible. Can not know how to do this. You cannot click in the box to 100% and change it, only the + and - buttons.

    He was previously a control that allow you to dial in any size that you liked? I don't know who... he could control add-on? To see if you have still this control, you can use customization feature and optionally drag it to your toolbar.

    • button '3-bar' menu > customize

    For the function integrated + and - buttons, you can change the steps. By default, the enlargement options:

    1.1 => 110%
    1.2 => 120%
    1.33 => 133%
    1.5 => 150%
    1.7 => 170%
    2 => 200%
    2.4 => 240%
    3 => 300%
    

    The default mitigation measures are:

    .9 => 90%
    .8 => 80%
    .67 => 67%
    .5 => 50%
    .3 => 30%
    

    To add additional steps, you can modify the list in Firefox about: config preferences editor. Here's how:

    (1) in a new tab, type or paste Subject: config in the address bar and press ENTER. Click on the button promising to be careful.

    (2) in the search box that appears above the list, type or paste the zoom and make a break while the list is filtered

    (3) double-click the preference toolkit.zoomManager.zoomValues and edit it as you wish. Since it's a little difficult to read, you can copy it to a word processor or another program where you can zoom text, modify it, and then copy the revised version.

    For example, to add 85% as a step, you should insert it here:

    .3,.5,.67,.8,.85,.9,1,1.1,1.2,1.33,1.5,1.7,2,2.4,3
    

    Note #1: After having OK'ing this change, it will come into force in any new windows that you open. Existing windows/tabs seem to remember the implementation at the time you opened the. (To move a tab into a new window, click on the tab on the tab bar > move to the new window.)

    #2 Note: If the preference becomes a mess, you can right click > reset to restore the default value.

  • How can I Zoom in on a specific area?

    I'm trying to PowerPoint slides in an AE project that has a framework for the media, but one of my slides a lot of text about it which is hard to read. I would like to somehow, being able to zoom in and focus on different areas of the slide. I've attached a screenshot of what it looks like.

    If, for example I want to focus on the blue highlighted area in the screenshot, but I don't want to increase the size of the image - the area inside the frame. The framework is a precomp. Any tips?

    Thank you.

    Screen Shot 2013-12-04 at 3.21.39 PM.png

    Mylenium says:

    Scale

    Mylenium

    Ah, you can do better it ;-)

    You will need to duplicatate the precomp would layer and mask off the area you want to focus on or with a mask applied to the layer or a matte sitting above the layer, or by using the "set matte effect

    You can also adjust the anchor of the new layer so it is in the middle of the masked area.

    Then, as Mylenium says, is scale.

  • How can I find levels of knot / depth of recursive tree table?

    Guys,

    With the help of Studio Edition Version 11.1.1.3.0.

    After 2-3 days of banging my head against the screen, I'm ready to ask for help. I confess: I'm a noob and can't find a way to get the node level / depth of a treeTable. I've not seen mentioned in the forums or in one of the examples of treeTable on different blogs. Google, the praise of God, I was missed as well.

    I tried in my Parent-> children-> tree table Recursive Child (the child of references view object):

    (1) EL expressions (my EL sucks) in a text output in the node. Hoping that something like #{node. HierTypeBinding.Parent.etc.}, would produce a kind of valuable info I could handle.
    (2) setting the value of a managed bean node, but do not know how to get the currently rendered node. I can only figure out how to get the node currently selected, which is only useful after the table has already been made.
    (3) level creating a transitional field called in the child view object and setting its equal to level sound + 1 ViewRowImpl, but if the child has many parents, I get incorrect calculations. I have the most away with this, but finally gave up. To access the feature through ViewLinks works great to browse children lines, but by train to get parent node is disconcerting if you have several parents.
    (4) the two saying "Please!" and various metaphors of four colorful letters. Not had much effect.

    Any kind of branch or help would be great.

    Thanks guys,.
    Will be

    Based on the Employees table in the HR schema, a link is defined between the employee-id and the id manager.
    When an instance of the view that above is used as table (recursive) tree, I am able to find the depth of the node.

    Example code:
    JSPX code fragment:


    selectionListener = "#{bindings." Employees.treeModel.makeCurrent}.
    rowSelection = "single" id = "tt1".
    styleClass = "AFStretchWidth" >



    *
    ID = "ot3" / >





    PageDef:











    Can you have the same card in your scenario and see if you can get the depth of a node?

    Thank you
    Nini

  • How can I Zoom with my Pavilion dm4 notebook cam?

    Have any tool of zomm with my pc laptop cam pailion dm4?

    Hello

    Basically, we cannot do this on hardware, use the software, please try this:

    http://www.BrotherSoft.com/Downloads/Zoom-webcam.html

    Merry Christmas.

  • How can Photoshop zooms in on both screens at the same time, I fix?

    I had a second monitor connected to my Macbook. When I opened two separate documents, one on each screen at the same time and I want to zoom in to A Document, photoshop simultaneously zooms in Document B on the second screen. It's really annoying. After the update yesterday, it worked perfectly still for two hours, and now the same problem occurs. Is there a way to fix this?

    Thanks in advance

    When you have selected the Zoom tool, check on the toolbar options if the option ' Zoom all windows "is checked.

  • How can I Zoom smoothly with a Magic Mouse in photoshop?

    Hello.

    I never use normal mice and zoom has never been a problem. I have always used the scroll to zoom and everything was fine and dandy. But later yesterday my Logitech mouse broke and I upgraded to an Apple Magic Mouse. Everything was great until I opened Photoshop and try to zoom. The scroll to zoom is horribly broken, he jumps out of tiny super zoom to huge, it is impossible to make a precise, smooth zoom.

    I use the latest version of PS on a Macbook Pro with OS X 10.8.4 of the retina.

    I'd appreciate any help, I work with a lot of very large documents, and my workflow has been seriously slowed down because of this.

    Ditto. Zoom chinless is a much more pleasant to navigate IMO way.

  • How do I Zoom on my workspace so that a little window tells you where you are in your image?

    I am a new user of PSE9, and I know the common ground. Currently, I am working on a picture I scanned on my computer, but it is very large. I have to zoom in on specific areas to get the right color, but how can I Zoom in while knowing where I am in the picture?

    My teacher taught us how to find a window that allows you to perform a zoom in and zoom out. I don't have a screenshot, but the window is normally in the upper right corner, and it shows your image. You can zoom in/out on the window with Magnifier, while your workspace size actually zooms with the window.

    I know it is difficult to explain and it might be difficult to understand, but this will help me a lot when I work on my drawings, because I'm hoping to specialize in digital art.

    Window > Navigator

  • How can I change the default zoom for the new tab only?

    The new tab in Firefox 33 zoom is too high to see all 12 of my thumb nail. I changed it using ctrl - but the next time I opened a new tab, the zoom is 100%. How can I change the default zoom for the new tab only?

    I posted a style rule to shrink the tiles, which allows several of them on the page, but naturally reduces their legibility. You can experiment with the dimensions to find a look that works for you.

    https://userstyles.org/styles/106326/shrink-new-tab-thumbnails

    I use the Stylish extension to experiment because of its preview function that allows me to see the effect quickly. You can install it from the site of modules, then after restart of Firefox while searching for his "S" icon in the toolbar to manage Styles so you can edit and experiment.

    https://addons.Mozilla.org/firefox/addon/stylish/

  • By pressing the control button automatically zooms; How can I disable zoom?

    I can copy more text using Ctrl + C, is because as soon as I press the control key, FireFox is used in zoom mode [No, my touch more isn't stuck!] and increases the page at the maximum size. Since I have no use for the zoom feature, how can I disable it?

    This could also be a problem with the mouse, because now the CTRL key and turn the mouse wheel scrolls also.

    Try to set the pref mousewheel.withcontrol.action to 1 on the topic: page config to avoid zoom if the Ctrl key is pressed.

    You can open the topic: config page via the address bar.
    You can accept the warning and click on "I'll be careful" to continue.

  • How can set resolution screen on firefox, I know zoom in and out, but I want to upgrade my browser to my upgrade zoom

    Hello
    How can set my screen resolution of firefox (I know zom in and outside zom, but when I restart my firefox it chanaged to perviose zoom level)

    Hello

    Firefox on Windows is now after display, scaling options that can make the biggest text on screens at high resolution. There are several ways to solve this problem. See the Web pages are broad and fuzzy after update of Firefox - how to fix article for a suggestion. Here is another possible solution:

    • Type of topic: config in the Firefox address bar and hit the Enter key.
    • If the warning that this might void your warranty , click I'll be careful, I promised.
    • Search for layout.css.devPixelsPerPx

    • Double-click layout.css.devPixelsPerPx to edit its value. The default value is - 1.0 in Firefox 22 and above. Change it to 1.0 to run as in previous versions of Firefox.

    If necessary, further adjust the value of 0.1 or 0.05. Values between 1.0 and around 0.5 to reduce the size of the elements. Use a value greater than 1.0 to increase the size. For example, a value of 1.25 will increase the font size of the 125% to account for the default DPI setting in Windows 8. Check the value that you enter. Definition of a value that is too small will take everything away and too high will explode things.

    If the web pages should always be adjusted so you can watch the extension Default FullZoom Level or NoSquint .

    To adjust the font size for the user interface, you can use the extension of theme font & size changer .

    This solve your problems? Please report to us!

    Thank you.

  • How can I configure Firefox to automatically zoom when a site regularly?

    Some sites have a fixed width, and I like to zoom in some of them so that I can read the text better. How can I configure Firefox automatically zoom-in in some of the sites that I visit regularly?

    You can use an extension to set a page zoom and the size of the default font on the web pages.

  • How can I configure the page zoom? Page is small, have read of bad... I never had this problem with internet explorer, there is a bar to zoom at the bottom of the page.

    How can I change the size of the text or zoom, I have trouble reading of this size.

    jeffmc: first of all, you are using a version of Firefox that has been replaced/replaced and is no longer supported. The current version of Firefox if 6.0.2. you are using version 5.0. Consider the upgrade.

    If you use the Firefox button instead of the menu bar, you won't see a 'View' at the top of the window of the browser or in the menu on the Firefox button.

    • You can temporarily show the Menu bar by pressing ALT or F10 and make your selection in the Menu bar displayed temporarily. View > Zoom
    • You can instead, use ALT + V + Z for the Zoom settings
    • You can use CTRL ++ to enlarge, CTRL + - to zoom out, CTRL + 0 (<-that's a zero) to return the zoom to 100%
    • See-> Page Zoom and Text Zoom

    Add - ons:

    If this answer solved your problem, please click 'Solved It' next to this response when connected to the forum.

    Not related to your question, but...

    You may need to update some plug-ins. Check your plug-ins and update if necessary:

  • How can Firefox default to a different zoom for a big screen setting?

    I use Firefox as my default browser on my IMac 27 ", and it works well. I need the default value for a more zoomed in parameter. I know that I can zoom in using the "command +", but I am obliged to do after each screen. How can I change the default setting for a bigger screen of Firefox every time, compatible with thin and thick pixeled to 2560 x 1440 display?

    I use Firefox 7.0 Mac OSX 10.7.1, on a mid-2010 27 "IMac with a cpu I7 and 16 GB of RAM.

    Thank you!

    Try:

  • Added 24 "widescreen. How can I make an enlargement page discovered by default, instead of having whenever a page loads zoom? Thank you

    Added 24 "widescreen. How can I make an enlargement page discovered by default, instead of having whenever a page loads zoom? Thank you

    There are some add-ons that can do, like NoSquint and Default FullZoom Level.

Maybe you are looking for

  • do not show messages until I connect

    Regarding "Thunderbird mail. When I click on the icon of thunderbird, I can see my posts before I connect. I want my email messages not displayed till I sign in with "Master Password". How can I do that?

  • questions of pinhead

    I have a printer HP Officejet Pro 6830 and I got the message that reads that there is a problem with the head of a PIN What should I do to fix this? I can't believe that this printer (which was recommended by a person in the place, I bought the best)

  • Microsoft updates installation gives me an error 800706BE

    I had just reinstalled Windows 7 Enterprise 64-bit on a reformatted hard drive. The first thing I did once inside, ran Windows Update and start installation updates one by one (with a system reboot between each of them, even if it was not necessary).

  • Starting test FAILED - HP ENVY 1191-NR

    Hey guys/girls, New to the forum - need some tech support.  I have a HP ENVY3D 1191-NR running Windows 7.  He recently began closing before you start completely.  I ran a Test at startup and for the following results: Memory test: FAILED FAILURE ID:

  • Windows XP with 1 TB hard drive

    Currently, I bought a 1 TB hard drive. The saleman told me that I must be ware that several hard drives 1 TB do not work with Windows XP, and it helped me to choose one that works with XP. No surprises! It does not work. I have a Dell Dimension E521.