Question: By default the next item in wp7 panorama bleeds into the currently selected panorama item by a few pixels and I would like to show a bit more of the next item.

Is there a way to control the amount of pixels? I tried setting margins and paddings and tried editing the controlTemplate, but had no success.

Answer: 
Basically, function overloading happens only when the functions of same name are defined in the same scope.Now, Base class has its own scope and derived class has its own. 

So, when u don't redefine a function in the derived class and call that function, the compiler checks the scope of derived, discovers that there is no such function defined in there. Then it checks the scope of base class, discovers the function and accordingly binds the function call to this particular definition.

But, when u redefine the function with different signature, the compiler matches the call with this function, sees inconsistency and simply complains.

you can change this behaviour by adding "using Base::gogo; " in derived class defenision.
I hope this explains.
Since you declared the second `obj` as a `Base*`, the vtable gives it all the methods of `Base`. Although for virtual methods which have been overriden by `Derived`, the overriden versions are called, the other methods (or method overloads) are still those that have been declared in `Base`.

However, if you declared the pointer as `Derived*`, the vtable will give it the methods of `Derived`, hiding the ones that had the same name in `Base`. Hence, `obj->gogo(7);` will not work. Similarly, this is also illegal:

```
Base* obj = new Derived();

// legal, since obj is a pointer to Base, it contains the gogo(int) method.
obj->gogo(7); 

// illegal, it has been cast into a pointer to Derived. gogo(int) is hidden.
(reinterpret_cast<Derived*>(obj))->gogo(7);

```

This is legal:

```
Derived* obj = new Derived ;
obj->Base::gogo(7); // legal.

```

See [here](http://ideone.com/CA9DM).