If the validation state is displayed at the correct time, but you do not want to show the validation message, you must modify the control template for your text box.
By default, the TextBox Control Template has a Border named ValidationErrorElement. That Border has a Tooltip which shows the error message. You just need to remove the tooltip.
<ControlTemplate TargetType="TextBox" x:Name="customTextBox">
<Grid x:Name="RootElement">
<VisualStateManager.VisualStateGroups>
...
</VisualStateManager.VisualStateGroups>
...
<Border x:Name="ValidationErrorElement" BorderThickness="1" CornerRadius="1" BorderBrush="#FFDB000C" Visibility="Collapsed">
<!-- Remove the tooltip here -->
<!--
<ToolTipService.ToolTip>
<ToolTip x:Name="validationTooltip" ...
</ToolTip>
</ToolTipService.ToolTip>
-->
<Grid Width="12" Height="12" HorizontalAlignment="Right" Margin="1,-4,-4,0" VerticalAlignment="Top" Background="Transparent">
<Path Margin="1,3,0,0" Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z" Fill="#FFDC000C"/>
<Path Margin="1,3,0,0" Data="M 0,0 L2,0 L 8,6 L8,8" Fill="#ffffff"/>
</Grid>
</Border>
</Grid>
</ControlTemplate>
Then apply the template to your TextBox
<TextBox Template="{StaticResource customTextBox}" ... />