необходимо обернуть TextBlock с Границей.. что-то вроде этого:
<Border BorderBrush="Purple" BorderThickness="2">
<TextBlock>My fancy TextBlock</TextBlock>
</Border>
в от шанса Вы спрашиваете, как поместить штрих вокруг фактических букв (а не целый TextBlock) можно хотеть посмотреть на использование BitmapEffect Свечения и установки параметров на Свечении, чтобы быть цветом обводки, который Вы хотите, и т.д. Иначе Вам, вероятно, придется создать что-то пользовательское.
Используйте RegisterDeviceNotification , чтобы зарегистрироваться для получения уведомления WM_DEVICECHANGE .
Вы можете сделать это через WMI, AFAIK. Я никогда не пробовал это сделать, поэтому особо не могу помочь