locked
Ресурс через C# RRS feed

  • Вопрос

  • Почему не срабатывают строки:

    txblemail.Style = (Style)Resources["TextBlockInfoStyle"];
    //txblemail.Style = (Style)txblemail.FindName("TextBlockInfoStyle");

    Ни первая ни вторая

    ошибка

    +  Resources["TextBlockInfoStyle"] "Resources["TextBlockInfoStyle"]" запустило исключение типа "System.Runtime.InteropServices.COMException" object {System.Runtime.InteropServices.COMException}


    Спасибо

    16 апреля 2013 г. 13:37

Ответы

  • Попробуйте использовать этот вариант:

            private static Style FindStyle(object source, string key)
            {
                var frameworkElement = source as FrameworkElement;
                var resourceDictionary = frameworkElement == null ? Application.Current.Resources : frameworkElement.Resources;
                object value;
                if (resourceDictionary.TryGetValue(key, out value))
                {
                    var style = value as Style;
                    if (style != null) return style;
                }
                return null;
            }
    

    • Помечено в качестве ответа developers_s 17 апреля 2013 г. 2:15
    16 апреля 2013 г. 18:05

Все ответы

  • Попробуйте использовать этот вариант:

            private static Style FindStyle(object source, string key)
            {
                var frameworkElement = source as FrameworkElement;
                var resourceDictionary = frameworkElement == null ? Application.Current.Resources : frameworkElement.Resources;
                object value;
                if (resourceDictionary.TryGetValue(key, out value))
                {
                    var style = value as Style;
                    if (style != null) return style;
                }
                return null;
            }
    

    • Помечено в качестве ответа developers_s 17 апреля 2013 г. 2:15
    16 апреля 2013 г. 18:05
  • всё равно не сработал. Окно Popup не открывается - ничего не пишет.


    Спасибо

    17 апреля 2013 г. 4:40
  • Может быть проблема не в ресурсах? Вы как открываете Popup?
    17 апреля 2013 г. 5:04
  • Popup popup = new Popup(); popup.IsLightDismissEnabled = true; Grid panel = new Grid(); panel.Background = bottomAppBar.Background; panel.Height = 500; panel.Width = 300; panel.Transitions = new TransitionCollection(); panel.Transitions.Add(new PopupThemeTransition()); TextBlock txblemail = new TextBlock(); txblemail.Text = TXBLemail; //txblemail.Style = (Style)txblemail.FindName("TextBlockInfoStyle"); //txblemail.Style = (Style)Resources["TextBlockInfoStyle"]; Grid.SetRow(txblemail, 0); panel.Children.Add(txblemail); popup.Child = panel; var transform = TransformToVisual(this); var point = transform.TransformPoint(new Point());

    popup.HorizontalOffset = sd - 300;// point.X+300; popup.VerticalOffset = point.Y + 100; popup.IsOpen = true;

    double sd = pageRoot.ActualWidth;

    ну эта строчка выше запуска popup.


    Спасибо

    И Прога падает и стили не подцепляются.

    ещё забыл что Text у TextBlock подгружается из ресурсов локализации

                        var resourceLoader = new ResourceLoader();
                        var TXBLemail = resourceLoader.GetString("Email");

    • Изменено developers_s 17 апреля 2013 г. 5:33
    17 апреля 2013 г. 5:26
  • может дело не в Popup а в MainPage.

    Что происходит с MainPage когда при открытом Popup я нажимаю где нибудь на основном окне и popup исчезает?

    Какие методы запускаются?

    Может что-то в App.cs

    или в LayoutAwarePage?


    Спасибо

    17 апреля 2013 г. 5:40