This problem is not as difficult as it feels. I like "Jim" over my given name "James" so I know the feeling, except maybe you feel differently because you prefer a more formal sounding or more lengthy version of your name. And generally, people that want to work well with you will want to know and use your preferred name. You will respond better, right?
There are several scenarios where this can be gracefully handled. But let's start with a couple "don'ts" :
When someone calls you "Chris" don't make it a point to correct them. Treat it as if someone simply mispronounced your name. Focus on the professional aspect of the conversation first, then move to your personal preferences for the workplace.
Avoid making any public statements about this issue. It will most likely sound petty or insecure.
Don't try to "fix" anyone that you've told twice. They obviously don't care.
Those things aside, remember that most people in an office don't want friction. They might hear people calling you "Chris" when you're not around. They are probably not going to approach you to ask your name - that's very unacceptable. They need you to help them, and if they say your name wrong, it really may not be their fault. So try to think of this as a way to "bring them into your circle" - you're including them by telling them how to be on your good side. Is it awkward that they didn't know your preference? Not really - they at least made an effort to know your name without asking you. So, they care about you. Now help them build a better relationship with you.
So here is what you can do to make a difference:
At the end of a conversation where someone called you "Chris" - after you've heard and addressed their reason for reaching out to you, make a comment like, "By the way, you called me 'Chris' earlier and some people in the office are doing that. But I wanted to be sure that you knew I prefer 'Christopher'" - maybe followed with, "unless you're my long, lost grandfather/grandmother" or something else sarcastic/witty/etc.
If someone calls you "Chris" in a meeting or other public setting, approach them later and say, "Hey, in that meeting you called me 'Chris' - and I know a lot of people around here are doing that. It's fine, but I really want you to know that I really prefer 'Christopher'. It's OK if some people don't know, but I really wanted you to know that." Or something similar.
For some people, the best idea is to help them feel like you assume that they know your preference, and you are enlisting their help to get the rest of the office on board. To do this you should be the one to bring it up. Approach them with something like, "Hey, I know I'm kind of new but I think a lot of people around here don't know that I liked to be called 'Christopher' and not 'Chris'." Then follow that with something they can connect with like, "Can you help me out and spread the word?" or "I don't want to correct anyone, so do you have any suggestions?" or "Do you think I should get a shirt with 'My name is "Christopher" not "Chris"' on it?"
Ask co-workers to clarify other names in the office / clients / etc. and include your name preference, like - "Do you think 'Joseph' goes by 'Joe' or do you think he's more like me, because I prefer 'Christopher' and not 'Chris'?"
There are more approaches, but the core message here is this: other people might be bad with names or not care, but that doesn't mean your name doesn't matter or that it isn't important to some or all of your office mates. They probably want to know your preference, so the key is to help them learn it without correcting them or telling them they are wrong by calling you "Chris" - they are just better off if they call you "Christopher" right? :)
It is key to remember that calling someone by a name other than what they ask to be called will be off-putting to anyone, not just you, and your preference reasonable. For an unreasonable example - I worked with a guy that everyone called "Captain" even though we all wrote software unrelated to boats or watercraft .. and when I asked him his name he said it (I don't remember it) and then immediately said, "but everyone calls me 'Captain'" .. it was weird to me but I did it. Your request, very reasonable by comparison.
Hope it works out for you!