If isFixed is false, it looks like the gradient is supposed to start at the bottom of the window. Have you verified that isFixed is false? You could also try passing psInput.UV.y as the output of the shader to verify that its value is correct.
With isFixed false I want the gradient influenced by the camera position. My shader is wrong, since the start point of the gradient is the bottom of the window instead of the bottom of the sprite.
The question is: how can I modify the shader in order to have the gradient starting from the bottom of the sprite? Maybe I need the size of the sprite in pixel? Or there are other convenient ways?
The other question regards the "fixed gradient": if I want the gradient not influenced by the camera position, what is the convenient way? It's possibile to have these two behavior in the same shader?