Settings have to be stored somewhere, and unfortunately that either means in the Registry (which is heavily abused, and is technically stored in an external file within Windows), in an external file on disk that you create, a remote server (xml over http), or a database. The settings simply have to exist some place they can be loaded again, but the place you choose to write them to is up to you.
I completely understand that you do not want to have to manipulate the file itself by means of reading it, parsing it, then loading. Flip side, getting settings, translating into a config format, and writing to disk. This is an annoying process.
You could use Application Configuration or User Settings, and these are easily visible to the user. If you want something hidden, there really isn't such a thing. A user who really wants to snoop through an applications files, will generally find what they are looking for, and most everything is vulnerable to some degree. You could encrypt your configuration settings, but you still have to work with the file.
My recommendation would be to implement a database like SqlServerCE. Its a file system based database, where the data is not immediately accessible, you can put the file somewhere somewhat hidden (ie. C:\ProgramData\etc\etc), and you don't have to do a whole lot of work. But like I said, what you are asking for requires some work.