Слева направо, а первая альтернатива соответствует «победам», другие не проверяются. Это типичное поведение регулярного выражения 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 ).
Просто оберните изображение в элемент управления «Граница»
<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>
Принятый ответ не будет работать из-за проблемы, описанной здесь 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>