Как я помещаю границу вокруг изображения в WPF?

Слева направо, а первая альтернатива соответствует «победам», другие не проверяются. Это типичное поведение регулярного выражения NFA. Хорошее описание этого поведения приведено на странице regular-expressions.info Страница альтернации .

Обратите внимание, что RegexOptions.RightToLeft только заставляет движок regex проверять входную строку справа налево, модификатор не влияет на то, как механизм regex обрабатывает сам шаблон.

Позвольте мне проиллюстрировать: если у вас есть (aaa|bb|a) regex и попытайтесь найти совпадение в bbac, используя Regex.Match, значение вы получите bb, потому что после bbb появляется альтернатива a. Если вы используете Regex.Matches, вы получите все совпадения, и оба bb и a приземлятся в ваших результатах.

Также, тот факт, что шаблон регулярного выражения рассматривается слева направо, ясно, что внутри не закрепленной альтернативной группы, порядок альтернатив имеет значение . Если вы используете регулярное выражение (a|aa|aaa) для сопоставления с abbccaa, первая альтернатива a будет соответствовать каждому a в строке (см. Демону regex ). Когда вы добавляете границы слов, вы можете поместить альтернативы в любом порядке (см. еще одну демонстрацию regex ).

26
задан paxdiablo 22 June 2010 в 12:21
поделиться

2 ответа

Просто оберните изображение в элемент управления «Граница»

<Border BorderThickness="1">
    <Image Name="imgPic1"
           Width="100"
           Height="75"
           Stretch="Fill"
           VerticalAlignment="Top" />
</Border>

Вы также можете предоставить стиль, который вы применяете к изображениям, который делает это, если вы не хотите делать это вокруг каждого изображения


Окончательное решение от ответа и комментариев, добавленных Паксом:

<Border BorderThickness="1"
        BorderBrush="#FF000000"
        VerticalAlignment="Top">
    <Image Name="imgPic1"
           Width="100"
           Height="75"
           Stretch="Fill"
           VerticalAlignment="Top"/>
</Border>
58
ответ дан paxdiablo 28 November 2019 в 06:37
поделиться

Принятый ответ не будет работать из-за проблемы, описанной здесь https://wpf.2000things.com/2011/04/17/279-adding-a-border-around-an-image-control/

Я решил это таким образом.

<Viewbox>
    <Border BorderThickness="3" BorderBrush="Red">
     <Image Stretch="None" ></Image>
    </Border>
   </Viewbox>
1
ответ дан Andreas 28 November 2019 в 06:37
поделиться
Другие вопросы по тегам:

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