title: why the culture is not getting set in my application with Thread.Current code?
body: <p>I have created a localization application in WPF.  I have bind the controls in the xaml like this.</p>
  
  <p><code>&lt;Label Name="languageLabel" Content="{x:Static Resources:Resources.languageLabel}"  Style="{StaticResource CommonRepSecStyle}" /&gt;</code></p>
  
  <p>Everything works fine but still I am not sure the techniques I applied are good. I created a resource manager and assigned the string values to controls like this.</p>
  
  <pre><code>        Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
          Dim localResource As System.Resources.ResourceManager = New System.Resources.ResourceManager("LocalTest.Resources", System.Reflection.Assembly.GetExecutingAssembly())
  
          languageLabel.Content = localResource.GetString("languageLabel", culture)
         stateLabel.Content = localResource.GetString("stateLabel", culture)
          cityLabel.Content = localResource.GetString("cityLabel", culture)
         stateComboBox.Text = localResource.GetString("stateComboBox", culture)
          cityComboBox.Text = localResource.GetString("cityComboBox", culture)
          infoLabel.Content = localResource.GetString("infoLabel", culture)
          infoTextBox.Text = localResource.GetString("infoTextBox", culture)
          localResources.ReleaseAllResources()
  </code></pre>
  
  <p>It does not seems to work until I assigned the values to the controls? Is there any way to improve this? Thank you!</p>
  
  <p>Edit : The complete code is here</p>
  
  <pre><code>    Imports System.IO
      Imports System.Windows.Controls
      Imports System.Globalization
      Imports System.Configuration
      Imports System.Threading
      Imports System.ComponentModel
      Imports System.Resources
      Imports System.Windows.Markup
      Imports System.Reflection
      Imports System.Uri
      Namespace LocalTest
  
  Public Class MainWindow
      Private cultureName As String
  
  
      Public Sub New()
  
          '    '    ' This call is required by the designer.
          InitializeComponent()
  
          '    '    ' Add any initialization after the InitializeComponent() call.
  
      End Sub
      Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
  
  
      End Sub
      Private Sub ButtonEnglish_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles ButtonEnglish.Click
          cultureName = "en-US"
  
          SetControlsCulture()
          'Dim ob As Object
          'ob = Application.Current.TryFindResource("Resources.en-US.resx")
  
          'Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
          'Thread.CurrentThread.CurrentUICulture  = CultureInfo.CreateSpecificCulture("en-US")
  
      End Sub
  
      Private Sub ButtonFrench_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles ButtonFrench.Click
          cultureName = "fr-CA"
          System.Threading.Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr-CA")
  
          SetControlsCulture()
  
      End Sub
      ' Dim s As String = r.GetString("LabelContent", culture)
      'Thread.CurrentThread.CurrentCulture = culture
      'Thread.CurrentThread.CurrentUICulture = culture
  
  
      ''' &lt;summary&gt;
      ''' Select the Controls Culture
      ''' &lt;/summary&gt;
      ''' &lt;remarks&gt;&lt;/remarks&gt;
  
      Private Sub SetControlsCulture()
          Select Case cultureName
              Case "fr-CA"
                  UIControlsBinding()
              Case "en-US"
                  UIControlsBinding()
          End Select
      End Sub
     Private Sub UIControlsBinding()
          Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
          Dim localResource As System.Resources.ResourceManager = New      System.Resources.ResourceManager("LocalTest.Resources", System.Reflection.Assembly.GetExecutingAssembly())
       languageLabel.Content = localResource.GetString("languageLabel", culture)
       stateLabel.Content = localResource.GetString("stateLabel", culture)
       cityLabel.Content = localResource.GetString("cityLabel", culture)
       stateComboBox.Text = localResource.GetString("stateComboBox", culture)
       cityComboBox.Text = localResource.GetString("cityComboBox", culture)
      infoLabel.Content = localResource.GetString("infoLabel", culture)
      infoTextBox.Text = localResource.GetString("infoTextBox", culture)
      localResources.ReleaseAllResources() 
      End Sub
      End class
      End Namespace
  </code></pre>