Изменение языка с помощью пунктов меню в C # wpf - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь изменить язык с помощью пунктов меню.

Мне удалось сделать это с помощью элементов Combobox, но теперь я не знаю, как сделать это в MenuItems, вы понимаете?

public partial class MainWindow : Window
{
    string strLanguage = "";
    Boolean boolInit = true;

    public MainWindow()
    {
        InitializeComponent();
        boolInit = false;
    }

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        Set_Language();
    }

    private void ddlLanguage_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        Set_Language();
    }

    private void Set_Language()
    {
        if (boolInit == false)
        {
            strLanguage = "SMS_Vrána.Languages." + ((ComboBoxItem)ddlLanguage.SelectedItem).Name.ToString();
            ResourceManager LocRM = new ResourceManager(strLanguage, typeof(MainWindow).Assembly);
            lblNumber.Text = LocRM.GetString("strNumber");
            lblMessage.Text = LocRM.GetString("strMessage");
            btnSend.Content = LocRM.GetString("strSend");
        }
    }
}

}

mine xaml

        <DockPanel>
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="_File">
                <MenuItem Header="_test"/>
            </MenuItem>
            <MenuItem Header="_Language" Name="menuLangTest">
                <MenuItem Header="Czech" Name="menuCzech"/>
                <MenuItem Header="English" Name="menuEng"/>
            </MenuItem>

        </Menu>
    </DockPanel>

    <ComboBox Name="ddlLanguage" FontSize="22" SelectionChanged="ddlLanguage_SelectionChanged" Margin="10,77,10,301">
        <ComboBoxItem IsEnabled="False" IsSelected="True">Language</ComboBoxItem>            
        <ComboBoxItem Name="English">English</ComboBoxItem>
        <ComboBoxItem Name="Czech">Cesky</ComboBoxItem>
    </ComboBox>

Специально то, что я не знаю, как сказать, если по нажатию menuitem переименовать текстовые метки .. Ty для любой помощи.

Я попытался добавить пункт меню следующим образом:

        private void menuCzech_Click(object sender, RoutedEventArgs e)
    {
        strLanguage = "SMS_Vrána.Languages." + Name.ToString();
        ResourceManager LocRM = new ResourceManager(strLanguage, typeof(MainWindow).Assembly);
        lblNumber.Text = LocRM.GetString("strNumber");
        lblMessage.Text = LocRM.GetString("strMessage");
        btnSend.Content = LocRM.GetString("strSend");
    }

Не удалось решить мою проблему.Или я что-то не так делаю?

...