• 0

[C# Tip] Converting ContentAlignment to StringAlignment


Question

Recently, while writing my own custom button, I needed to convert the TextAlign property to something I can use in DrawString. This initially proofed not as simple as I thought because TextAlign uses the ContentAlignment type, and DrawString uses the far simple StringAlignment.

I spent a good half a day scouring the internet, and I really couldn't believe what I found. It seems that the ONLY way that anyone had found how to do this relatively simple task, was with a switch statement! Laboriously checking which TextAlignment was being used, and manually setting the .LineAlignment and .Alignment properties of the StringFormat object before sending it to graphics.DrawString.

Experience has taught me that, in C#, there are usually many solutions that will work, but most of them are complete and utter garbage, and it struck me that there's no way that a long assed switch statement was the right solution. So I had a look at the actual values of the enums for ContentAlignment and StringAlignment, and realised that really, the solution is actually very simple; you just need to use a little math.

Convert ContentAlignment to StringAlignment

StringFormat cFormat;
Int32 lNum =  (Int32)Math.Log((Double)this.TextAlign, 2);
cFormat.LineAlignment = (StringAlignment)(lNum / 4);
cFormat.Alignment = (StringAlignment)(lNum % 4);

...you then just use the cFormat object in your DrawString.

That's it! Simple really, isn't it?

  • Like 1

3 answers to this question

Recommended Posts

  • 0

DrawString is part of the Graphics namespace and is used when drawing strings on to any graphics object. In my particular case, an owner drawn WinForms button. It's not really anything to do directly with XNA at all, it's GDI territory.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Sorry, no - Data protection is solely the responsibility of the user. If you value the data, you have multiple copies.
    • Is this phone actually made in the USA?
    • Watchdog finds Microsoft guilty of confusing advertising when it comes to Copilot by Usama Jawad While Microsoft is advocating for Copilot usage in both personal and enterprise environments as much as possible, it arguably hasn't made as big of a splash as it wanted. Now, the U.S. watchdog National Advertising Division (NAD) has criticized Microsoft for some of its advertising practices when it comes to Copilot. In a recent blog post spotted by The Verge, NAD noted that Copilot does possess the functionalities that Microsoft expressly claims it does in enterprise use cases. This includes capabilities like summarization of content, generating text, and creating outlines for PowerPoint slide decks. While Copilot does have some limitations in this area, NAD thinks that they are pretty minor, so the lack of disclosure in this area doesn't really impact how most customers leverage Copilot. That said, the watchdog discovered some problems in Microsoft's messaging when it came to Business Chat. It believes that Redmond's universal and interchangeable use of Copilot for both the assistant and Business Chat can cause confusion among users, as they judge their functionalities. For example, NAD argues that while Copilot is quite fast at seamlessly generating documents in other applications, this is not the case with Business Chat, which requires more manual steps, and this is not abundantly clear in the advertising on Microsoft's website. Finally, NAD advised Microsoft to get rid of its claims regarding an increase in productivity and ROI because while the tech giant does have supporting studies to back its boasts, they do not provide a "good fit" for objective claims. It's also worth highlighting that the UK government recently did trial Copilot in work environments and discovered that participants did save 26 minutes per day on average. Still, it seems like this is not good enough for NAD. Interestingly, Microsoft did respond to NAD's advisory, saying that while it disagrees with some of the watchdog's findings, it has made changes to its advertising messages in order to comply with NAD's recommendations. Source: NAD via The Verge
    • My new emergency poo ticket holder
    • These are the same ignorant, gullible, cowardly fools who still believe that gods are real and that fictional White Jesus is coming back to Earth "any day now". It's a Venn-diagram of two almost perfectly concentric circles. In short, they'll buy anything you lie to them about as long as it makes them less afraid... Of things the rest of us know we don't have to be afraid of at all.
  • Recent Achievements

    • Experienced
      dismuter went up a rank
      Experienced
    • One Month Later
      mevinyavin earned a badge
      One Month Later
    • Week One Done
      rozermack875 earned a badge
      Week One Done
    • Week One Done
      oneworldtechnologies earned a badge
      Week One Done
    • Veteran
      matthiew went up a rank
      Veteran
  • Popular Contributors

    1. 1
      +primortal
      700
    2. 2
      ATLien_0
      268
    3. 3
      Michael Scrip
      213
    4. 4
      +FloatingFatMan
      186
    5. 5
      Steven P.
      143
  • Tell a friend

    Love Neowin? Tell a friend!