Переопределение стандартных стандартов стиля шаблона в WPF? [Дубликат]

Кажется, вы используете ноутбук Juypter. Это всегда показывает какой-либо автогенерированный выход (например, цифры matplotlib), последний на выходе.

Вы можете использовать IPython.display.display для отображения цифр в позиции выхода, где они принадлежат.

import matplotlib.pyplot as plt
import numpy as np
from IPython.display import display

images = [np.random.rayleigh((i+1)/8., size=(180, 200, 3)) for i in range(4)]

dog_detector = lambda x: np.random.choice([True,False])
dog_counter = 0

for i in range(len(images)):

    if dog_detector(images[i]):
        dog_counter+=1
        fig, ax = plt.subplots(figsize=(3,2))
        ax.imshow(images[i])
        display(fig)
        display("That's a dog!!!!")
        display("______________")

    else: 

        display("______________")
        fig, ax = plt.subplots(figsize=(3,2))
        ax.imshow(images[i])
        display(fig)
        display("No Doggo up here :(")
        display("______________")

perc = (dog_counter/float(len(images)))*100 
display("{}% of the dog pictures are classified as dogs".format(perc))
plt.close()

Выход:

24
задан akjoshi 15 March 2012 в 08:13
поделиться

3 ответа

нет

Ничего. Поскольку тип свойства Type, синтаксический анализатор XAML знает, чтобы попытаться преобразовать все, что вы поставили в Type. В других сценариях тип свойства может быть менее специфичным (например, Object), и именно там вам нужно расширение разметки, в противном случае анализатор XAML будет просто интерпретировать ваше значение как String.

19
ответ дан Tim Cooper 5 September 2018 в 16:00
поделиться

Извините за то, что выкалываете такую ​​старую нить, но я чувствую, что это того стоит. Недавно я столкнулся с ситуацией, которая показывает, что x:Type отличается от TypeName-as-String.

По моему опыту -

x:Type учитывает сильное имя или версию сборки, но не TypeName-as-String.

Я объяснил свой сценарий и другие подробности в моем блоге здесь -

Значение указания типа AncestorType с x: Введите RelativeSourceBinding

Кроме того, есть также разница в том, как WPF вводит тип. Для x:Type используется TypeExtension, тогда как для TypeName-as-String FrameworkElementFactory используется.

В соответствии с MSDN - x : Расширение разметки типа

Свойства типа, которые поддерживают Typename-as-String

WPF поддерживает методы, которые позволяют указывать значение некоторых свойств типа Тип без необходимости использование расширения расширений x:Type. Вместо этого вы можете указать значение как строку, которая называет тип. Примерами этого являются ControlTemplate.TargetType и Style.TargetType. Поддержка такого поведения не обеспечивается ни с помощью преобразователей типов, ни с расширений разметки. Вместо этого это поведение отсрочки осуществляется через FrameworkElementFactory.

15
ответ дан akjoshi 5 September 2018 в 16:00
поделиться

Помимо реального различия, описанного выше, использование {x: Тип NameOfType}, очевидно, будет выделено по-разному в вашей среде IDE и будет выделяться и сразу же указывать (в отличие от обычной строки). Так что это мое личное предпочтение.

0
ответ дан Mark Zhukovsky 5 September 2018 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: