Tag Info

With help from Cyral in the comments of the question, Find the DPI as such:
var dpiX = (int)typeof(SystemParameters).GetProperty("DpiX", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null);
var dpiY = (int)typeof(SystemParameters).GetProperty("Dpi", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null);
And then make the ...

If you have created a custom control with properties that you want to be bindable (e.g. following code), you cannot use INotifyPropertyChanged and you must use a DependencyProperty.
Assume you have a UserControl like this:
public partial class MyUserControl : UserControl
{
public List<ItemViewModel> ItemsSource
{
get { return ...

Your explanation is very close, except for one thing: this trick is not about memory consumption, because delegate{} objects take negligible amount of space. It is not about CPU cycles either, because executing an empty delegate takes very little time.
The trick is about readability and maintainability of the code, because it trades an initialization in a ...

Just replace the first \S with the negated character class like [^\s'"] which matches any non-space character but not of ' or double quotes. By this way, you may avoid single quote or double quote as first character.
^[^\s'\"][^\"\']{0,60}$
In c#
@"^[^\s'""][^""']{0,60}$"
^ start of the line.
[^\s'"] matches any character but not of space or single or ...

To display the message box you need to switch back to the UI thread with Dispatcher.Invoke, see this.
Application.Current.Dispatcher.Invoke(() => /* show appropriate message box */);
Alternatively if you are using .NET 4.5 or higher you can make your life a lot easier with async-await by marking LoginBtn_Click with the async keyword and then awaiting ...

if you want to bind the IsChecked property, then this is how you can do it in code behind:
for (int i = 0; i < myClass.myStaticList.Count; i++)
{
CheckBox newCheckBox = new CheckBox();
Binding binding = new Binding();
binding.Path = new PropertyPath(string.Format("[{0}]", i));
...

Databinding is between a Source and a Target.
The target side (WPF control) has to use Dependency properties, nothing else will work.
The Source (ViewModel) side can use simple properties for limited binding functionality but should in general implement INotifyPropertyChanged.
A ViewModel could also use Depnendency properties but there is not much ...

You have to create an instance and add data to your ObservableCollection, not to the ListBox that is binding to it.
MainWindow.cs :
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
myClass.myStaticList = new ObservableCollection<string>();
myClass.myStaticList.Add("aaa");
...

Has nothing to do with the version of Visual Studio. Has to do with the version of .NET. In 4.5 and above, you can use BindingOperations.DisconnectedSource. Before 4.5, .NET did not expose this member, so you have to do a string compare.