En este fragmento de código vamos a ver como podemos crear TextBox Mahapps personalizado con botón. Es muy útil por ejemplo cuando queremos seleccionar un archivo o cuando queremos abrir una carpeta o ruta. También lo podemos utilizar para cualquier otra opción que queramos. Utilizaremos Mahapps Metro y Mahapps Metro Resource, si todavía no lo tienes instalado mira este fragmento. El código que necesitas para crear este botón personalizado es el siguiente:
<TextBox Controls:TextBoxHelper.ButtonCommand="{Binding Path=SelectInvHidCommand}"
Controls:TextBoxHelper.UseFloatingWatermark="True"
Controls:TextBoxHelper.Watermark="Abrir archivo"
Style="{DynamicResource MetroButtonTextBox}" >
<Controls:TextBoxHelper.ButtonContent>
<Rectangle Width="20" Height="20" Fill="{DynamicResource AccentColorBrush}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" Visual="{DynamicResource appbar_folder_open}" />
</Rectangle.OpacityMask>
</Rectangle>
</Controls:TextBoxHelper.ButtonContent>
</TextBox>Como ves podemos incorporar un Command al botón que nos permita hacer cualquier acción en nuestro ViewModel. El resultado sería el siguiente.



